/*-
 * #%L
 * OBKV Table Client Framework
 * %%
 * Copyright (C) 2021 OceanBase
 * %%
 * OBKV Table Client Framework is licensed under Mulan PSL v2.
 * You can use this software according to the terms and conditions of the Mulan PSL v2.
 * You may obtain a copy of Mulan PSL v2 at:
 *          http://license.coscl.org.cn/MulanPSL2
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PSL v2 for more details.
 * #L%
 */

package com.alipay.oceanbase.rpc.util.hash;

public final class ObHashSortUtf8mb4 {
    public static final int             OB_CS_TOOSMALL              = -101;                      // Need at least one byte:    wc_mb and mb_wc
    public static final int             OB_CS_ILSEQ                 = 0;                         // Wrong by sequence: wb_wc
    public static final int             OB_CS_TOOSMALL2             = -102;                      // Need at least two bytes:   wc_mb and mb_wc
    public static final int             OB_CS_TOOSMALL3             = -103;                      // Need at least three bytes: wc_mb and mb_wc
    public static final int             OB_CS_TOOSMALL4             = -104;                      // Need at least 4 bytes: wc_mb and mb_wc
    public static final int             OB_CS_LOWER_SORT            = 32768;                     // If use lower case actx.start weight
    public static final int             OB_CS_REPLACEMENT_CHARACTER = 0xFFFD;
    public static final int             OB_CS_COMPILED              = 1;                         // compiled-in sets
    public static final int             OB_CS_PRIMARY               = 32;                        // if primary collation
    public static final int             OB_CS_STRNXFRM              = 64;                        // if strnxfrm ictx.start used for sort
    public static final int             OB_CS_UNICODE               = 128;                       // ictx.start a charset ictx.start BMP Unicode
    public static final int             OB_CS_UNICODE_SUPPLEMENT    = 16384;                     // Non-BMP Unicode characters
    public static final int             OB_HASH_BUFFER_LENGTH       = 128;                       // Utf8mb4 hash buffer length

    public static ObUnicaseInfoChar[]   plane00                     = {
            new ObUnicaseInfoChar(0x0000, 0x0000, 0x0000),
            new ObUnicaseInfoChar(0x0001, 0x0001, 0x0001),
            new ObUnicaseInfoChar(0x0002, 0x0002, 0x0002),
            new ObUnicaseInfoChar(0x0003, 0x0003, 0x0003),
            new ObUnicaseInfoChar(0x0004, 0x0004, 0x0004),
            new ObUnicaseInfoChar(0x0005, 0x0005, 0x0005),
            new ObUnicaseInfoChar(0x0006, 0x0006, 0x0006),
            new ObUnicaseInfoChar(0x0007, 0x0007, 0x0007),
            new ObUnicaseInfoChar(0x0008, 0x0008, 0x0008),
            new ObUnicaseInfoChar(0x0009, 0x0009, 0x0009),
            new ObUnicaseInfoChar(0x000A, 0x000A, 0x000A),
            new ObUnicaseInfoChar(0x000B, 0x000B, 0x000B),
            new ObUnicaseInfoChar(0x000C, 0x000C, 0x000C),
            new ObUnicaseInfoChar(0x000D, 0x000D, 0x000D),
            new ObUnicaseInfoChar(0x000E, 0x000E, 0x000E),
            new ObUnicaseInfoChar(0x000F, 0x000F, 0x000F),
            new ObUnicaseInfoChar(0x0010, 0x0010, 0x0010),
            new ObUnicaseInfoChar(0x0011, 0x0011, 0x0011),
            new ObUnicaseInfoChar(0x0012, 0x0012, 0x0012),
            new ObUnicaseInfoChar(0x0013, 0x0013, 0x0013),
            new ObUnicaseInfoChar(0x0014, 0x0014, 0x0014),
            new ObUnicaseInfoChar(0x0015, 0x0015, 0x0015),
            new ObUnicaseInfoChar(0x0016, 0x0016, 0x0016),
            new ObUnicaseInfoChar(0x0017, 0x0017, 0x0017),
            new ObUnicaseInfoChar(0x0018, 0x0018, 0x0018),
            new ObUnicaseInfoChar(0x0019, 0x0019, 0x0019),
            new ObUnicaseInfoChar(0x001A, 0x001A, 0x001A),
            new ObUnicaseInfoChar(0x001B, 0x001B, 0x001B),
            new ObUnicaseInfoChar(0x001C, 0x001C, 0x001C),
            new ObUnicaseInfoChar(0x001D, 0x001D, 0x001D),
            new ObUnicaseInfoChar(0x001E, 0x001E, 0x001E),
            new ObUnicaseInfoChar(0x001F, 0x001F, 0x001F),
            new ObUnicaseInfoChar(0x0020, 0x0020, 0x0020),
            new ObUnicaseInfoChar(0x0021, 0x0021, 0x0021),
            new ObUnicaseInfoChar(0x0022, 0x0022, 0x0022),
            new ObUnicaseInfoChar(0x0023, 0x0023, 0x0023),
            new ObUnicaseInfoChar(0x0024, 0x0024, 0x0024),
            new ObUnicaseInfoChar(0x0025, 0x0025, 0x0025),
            new ObUnicaseInfoChar(0x0026, 0x0026, 0x0026),
            new ObUnicaseInfoChar(0x0027, 0x0027, 0x0027),
            new ObUnicaseInfoChar(0x0028, 0x0028, 0x0028),
            new ObUnicaseInfoChar(0x0029, 0x0029, 0x0029),
            new ObUnicaseInfoChar(0x002A, 0x002A, 0x002A),
            new ObUnicaseInfoChar(0x002B, 0x002B, 0x002B),
            new ObUnicaseInfoChar(0x002C, 0x002C, 0x002C),
            new ObUnicaseInfoChar(0x002D, 0x002D, 0x002D),
            new ObUnicaseInfoChar(0x002E, 0x002E, 0x002E),
            new ObUnicaseInfoChar(0x002F, 0x002F, 0x002F),
            new ObUnicaseInfoChar(0x0030, 0x0030, 0x0030),
            new ObUnicaseInfoChar(0x0031, 0x0031, 0x0031),
            new ObUnicaseInfoChar(0x0032, 0x0032, 0x0032),
            new ObUnicaseInfoChar(0x0033, 0x0033, 0x0033),
            new ObUnicaseInfoChar(0x0034, 0x0034, 0x0034),
            new ObUnicaseInfoChar(0x0035, 0x0035, 0x0035),
            new ObUnicaseInfoChar(0x0036, 0x0036, 0x0036),
            new ObUnicaseInfoChar(0x0037, 0x0037, 0x0037),
            new ObUnicaseInfoChar(0x0038, 0x0038, 0x0038),
            new ObUnicaseInfoChar(0x0039, 0x0039, 0x0039),
            new ObUnicaseInfoChar(0x003A, 0x003A, 0x003A),
            new ObUnicaseInfoChar(0x003B, 0x003B, 0x003B),
            new ObUnicaseInfoChar(0x003C, 0x003C, 0x003C),
            new ObUnicaseInfoChar(0x003D, 0x003D, 0x003D),
            new ObUnicaseInfoChar(0x003E, 0x003E, 0x003E),
            new ObUnicaseInfoChar(0x003F, 0x003F, 0x003F),
            new ObUnicaseInfoChar(0x0040, 0x0040, 0x0040),
            new ObUnicaseInfoChar(0x0041, 0x0061, 0x0041),
            new ObUnicaseInfoChar(0x0042, 0x0062, 0x0042),
            new ObUnicaseInfoChar(0x0043, 0x0063, 0x0043),
            new ObUnicaseInfoChar(0x0044, 0x0064, 0x0044),
            new ObUnicaseInfoChar(0x0045, 0x0065, 0x0045),
            new ObUnicaseInfoChar(0x0046, 0x0066, 0x0046),
            new ObUnicaseInfoChar(0x0047, 0x0067, 0x0047),
            new ObUnicaseInfoChar(0x0048, 0x0068, 0x0048),
            new ObUnicaseInfoChar(0x0049, 0x0069, 0x0049),
            new ObUnicaseInfoChar(0x004A, 0x006A, 0x004A),
            new ObUnicaseInfoChar(0x004B, 0x006B, 0x004B),
            new ObUnicaseInfoChar(0x004C, 0x006C, 0x004C),
            new ObUnicaseInfoChar(0x004D, 0x006D, 0x004D),
            new ObUnicaseInfoChar(0x004E, 0x006E, 0x004E),
            new ObUnicaseInfoChar(0x004F, 0x006F, 0x004F),
            new ObUnicaseInfoChar(0x0050, 0x0070, 0x0050),
            new ObUnicaseInfoChar(0x0051, 0x0071, 0x0051),
            new ObUnicaseInfoChar(0x0052, 0x0072, 0x0052),
            new ObUnicaseInfoChar(0x0053, 0x0073, 0x0053),
            new ObUnicaseInfoChar(0x0054, 0x0074, 0x0054),
            new ObUnicaseInfoChar(0x0055, 0x0075, 0x0055),
            new ObUnicaseInfoChar(0x0056, 0x0076, 0x0056),
            new ObUnicaseInfoChar(0x0057, 0x0077, 0x0057),
            new ObUnicaseInfoChar(0x0058, 0x0078, 0x0058),
            new ObUnicaseInfoChar(0x0059, 0x0079, 0x0059),
            new ObUnicaseInfoChar(0x005A, 0x007A, 0x005A),
            new ObUnicaseInfoChar(0x005B, 0x005B, 0x005B),
            new ObUnicaseInfoChar(0x005C, 0x005C, 0x005C),
            new ObUnicaseInfoChar(0x005D, 0x005D, 0x005D),
            new ObUnicaseInfoChar(0x005E, 0x005E, 0x005E),
            new ObUnicaseInfoChar(0x005F, 0x005F, 0x005F),
            new ObUnicaseInfoChar(0x0060, 0x0060, 0x0060),
            new ObUnicaseInfoChar(0x0041, 0x0061, 0x0041),
            new ObUnicaseInfoChar(0x0042, 0x0062, 0x0042),
            new ObUnicaseInfoChar(0x0043, 0x0063, 0x0043),
            new ObUnicaseInfoChar(0x0044, 0x0064, 0x0044),
            new ObUnicaseInfoChar(0x0045, 0x0065, 0x0045),
            new ObUnicaseInfoChar(0x0046, 0x0066, 0x0046),
            new ObUnicaseInfoChar(0x0047, 0x0067, 0x0047),
            new ObUnicaseInfoChar(0x0048, 0x0068, 0x0048),
            new ObUnicaseInfoChar(0x0049, 0x0069, 0x0049),
            new ObUnicaseInfoChar(0x004A, 0x006A, 0x004A),
            new ObUnicaseInfoChar(0x004B, 0x006B, 0x004B),
            new ObUnicaseInfoChar(0x004C, 0x006C, 0x004C),
            new ObUnicaseInfoChar(0x004D, 0x006D, 0x004D),
            new ObUnicaseInfoChar(0x004E, 0x006E, 0x004E),
            new ObUnicaseInfoChar(0x004F, 0x006F, 0x004F),
            new ObUnicaseInfoChar(0x0050, 0x0070, 0x0050),
            new ObUnicaseInfoChar(0x0051, 0x0071, 0x0051),
            new ObUnicaseInfoChar(0x0052, 0x0072, 0x0052),
            new ObUnicaseInfoChar(0x0053, 0x0073, 0x0053),
            new ObUnicaseInfoChar(0x0054, 0x0074, 0x0054),
            new ObUnicaseInfoChar(0x0055, 0x0075, 0x0055),
            new ObUnicaseInfoChar(0x0056, 0x0076, 0x0056),
            new ObUnicaseInfoChar(0x0057, 0x0077, 0x0057),
            new ObUnicaseInfoChar(0x0058, 0x0078, 0x0058),
            new ObUnicaseInfoChar(0x0059, 0x0079, 0x0059),
            new ObUnicaseInfoChar(0x005A, 0x007A, 0x005A),
            new ObUnicaseInfoChar(0x007B, 0x007B, 0x007B),
            new ObUnicaseInfoChar(0x007C, 0x007C, 0x007C),
            new ObUnicaseInfoChar(0x007D, 0x007D, 0x007D),
            new ObUnicaseInfoChar(0x007E, 0x007E, 0x007E),
            new ObUnicaseInfoChar(0x007F, 0x007F, 0x007F),
            new ObUnicaseInfoChar(0x0080, 0x0080, 0x0080),
            new ObUnicaseInfoChar(0x0081, 0x0081, 0x0081),
            new ObUnicaseInfoChar(0x0082, 0x0082, 0x0082),
            new ObUnicaseInfoChar(0x0083, 0x0083, 0x0083),
            new ObUnicaseInfoChar(0x0084, 0x0084, 0x0084),
            new ObUnicaseInfoChar(0x0085, 0x0085, 0x0085),
            new ObUnicaseInfoChar(0x0086, 0x0086, 0x0086),
            new ObUnicaseInfoChar(0x0087, 0x0087, 0x0087),
            new ObUnicaseInfoChar(0x0088, 0x0088, 0x0088),
            new ObUnicaseInfoChar(0x0089, 0x0089, 0x0089),
            new ObUnicaseInfoChar(0x008A, 0x008A, 0x008A),
            new ObUnicaseInfoChar(0x008B, 0x008B, 0x008B),
            new ObUnicaseInfoChar(0x008C, 0x008C, 0x008C),
            new ObUnicaseInfoChar(0x008D, 0x008D, 0x008D),
            new ObUnicaseInfoChar(0x008E, 0x008E, 0x008E),
            new ObUnicaseInfoChar(0x008F, 0x008F, 0x008F),
            new ObUnicaseInfoChar(0x0090, 0x0090, 0x0090),
            new ObUnicaseInfoChar(0x0091, 0x0091, 0x0091),
            new ObUnicaseInfoChar(0x0092, 0x0092, 0x0092),
            new ObUnicaseInfoChar(0x0093, 0x0093, 0x0093),
            new ObUnicaseInfoChar(0x0094, 0x0094, 0x0094),
            new ObUnicaseInfoChar(0x0095, 0x0095, 0x0095),
            new ObUnicaseInfoChar(0x0096, 0x0096, 0x0096),
            new ObUnicaseInfoChar(0x0097, 0x0097, 0x0097),
            new ObUnicaseInfoChar(0x0098, 0x0098, 0x0098),
            new ObUnicaseInfoChar(0x0099, 0x0099, 0x0099),
            new ObUnicaseInfoChar(0x009A, 0x009A, 0x009A),
            new ObUnicaseInfoChar(0x009B, 0x009B, 0x009B),
            new ObUnicaseInfoChar(0x009C, 0x009C, 0x009C),
            new ObUnicaseInfoChar(0x009D, 0x009D, 0x009D),
            new ObUnicaseInfoChar(0x009E, 0x009E, 0x009E),
            new ObUnicaseInfoChar(0x009F, 0x009F, 0x009F),
            new ObUnicaseInfoChar(0x00A0, 0x00A0, 0x00A0),
            new ObUnicaseInfoChar(0x00A1, 0x00A1, 0x00A1),
            new ObUnicaseInfoChar(0x00A2, 0x00A2, 0x00A2),
            new ObUnicaseInfoChar(0x00A3, 0x00A3, 0x00A3),
            new ObUnicaseInfoChar(0x00A4, 0x00A4, 0x00A4),
            new ObUnicaseInfoChar(0x00A5, 0x00A5, 0x00A5),
            new ObUnicaseInfoChar(0x00A6, 0x00A6, 0x00A6),
            new ObUnicaseInfoChar(0x00A7, 0x00A7, 0x00A7),
            new ObUnicaseInfoChar(0x00A8, 0x00A8, 0x00A8),
            new ObUnicaseInfoChar(0x00A9, 0x00A9, 0x00A9),
            new ObUnicaseInfoChar(0x00AA, 0x00AA, 0x00AA),
            new ObUnicaseInfoChar(0x00AB, 0x00AB, 0x00AB),
            new ObUnicaseInfoChar(0x00AC, 0x00AC, 0x00AC),
            new ObUnicaseInfoChar(0x00AD, 0x00AD, 0x00AD),
            new ObUnicaseInfoChar(0x00AE, 0x00AE, 0x00AE),
            new ObUnicaseInfoChar(0x00AF, 0x00AF, 0x00AF),
            new ObUnicaseInfoChar(0x00B0, 0x00B0, 0x00B0),
            new ObUnicaseInfoChar(0x00B1, 0x00B1, 0x00B1),
            new ObUnicaseInfoChar(0x00B2, 0x00B2, 0x00B2),
            new ObUnicaseInfoChar(0x00B3, 0x00B3, 0x00B3),
            new ObUnicaseInfoChar(0x00B4, 0x00B4, 0x00B4),
            new ObUnicaseInfoChar(0x039C, 0x00B5, 0x039C),
            new ObUnicaseInfoChar(0x00B6, 0x00B6, 0x00B6),
            new ObUnicaseInfoChar(0x00B7, 0x00B7, 0x00B7),
            new ObUnicaseInfoChar(0x00B8, 0x00B8, 0x00B8),
            new ObUnicaseInfoChar(0x00B9, 0x00B9, 0x00B9),
            new ObUnicaseInfoChar(0x00BA, 0x00BA, 0x00BA),
            new ObUnicaseInfoChar(0x00BB, 0x00BB, 0x00BB),
            new ObUnicaseInfoChar(0x00BC, 0x00BC, 0x00BC),
            new ObUnicaseInfoChar(0x00BD, 0x00BD, 0x00BD),
            new ObUnicaseInfoChar(0x00BE, 0x00BE, 0x00BE),
            new ObUnicaseInfoChar(0x00BF, 0x00BF, 0x00BF),
            new ObUnicaseInfoChar(0x00C0, 0x00E0, 0x0041),
            new ObUnicaseInfoChar(0x00C1, 0x00E1, 0x0041),
            new ObUnicaseInfoChar(0x00C2, 0x00E2, 0x0041),
            new ObUnicaseInfoChar(0x00C3, 0x00E3, 0x0041),
            new ObUnicaseInfoChar(0x00C4, 0x00E4, 0x0041),
            new ObUnicaseInfoChar(0x00C5, 0x00E5, 0x0041),
            new ObUnicaseInfoChar(0x00C6, 0x00E6, 0x00C6),
            new ObUnicaseInfoChar(0x00C7, 0x00E7, 0x0043),
            new ObUnicaseInfoChar(0x00C8, 0x00E8, 0x0045),
            new ObUnicaseInfoChar(0x00C9, 0x00E9, 0x0045),
            new ObUnicaseInfoChar(0x00CA, 0x00EA, 0x0045),
            new ObUnicaseInfoChar(0x00CB, 0x00EB, 0x0045),
            new ObUnicaseInfoChar(0x00CC, 0x00EC, 0x0049),
            new ObUnicaseInfoChar(0x00CD, 0x00ED, 0x0049),
            new ObUnicaseInfoChar(0x00CE, 0x00EE, 0x0049),
            new ObUnicaseInfoChar(0x00CF, 0x00EF, 0x0049),
            new ObUnicaseInfoChar(0x00D0, 0x00F0, 0x00D0),
            new ObUnicaseInfoChar(0x00D1, 0x00F1, 0x004E),
            new ObUnicaseInfoChar(0x00D2, 0x00F2, 0x004F),
            new ObUnicaseInfoChar(0x00D3, 0x00F3, 0x004F),
            new ObUnicaseInfoChar(0x00D4, 0x00F4, 0x004F),
            new ObUnicaseInfoChar(0x00D5, 0x00F5, 0x004F),
            new ObUnicaseInfoChar(0x00D6, 0x00F6, 0x004F),
            new ObUnicaseInfoChar(0x00D7, 0x00D7, 0x00D7),
            new ObUnicaseInfoChar(0x00D8, 0x00F8, 0x00D8),
            new ObUnicaseInfoChar(0x00D9, 0x00F9, 0x0055),
            new ObUnicaseInfoChar(0x00DA, 0x00FA, 0x0055),
            new ObUnicaseInfoChar(0x00DB, 0x00FB, 0x0055),
            new ObUnicaseInfoChar(0x00DC, 0x00FC, 0x0055),
            new ObUnicaseInfoChar(0x00DD, 0x00FD, 0x0059),
            new ObUnicaseInfoChar(0x00DE, 0x00FE, 0x00DE),
            new ObUnicaseInfoChar(0x00DF, 0x00DF, 0x0053),
            new ObUnicaseInfoChar(0x00C0, 0x00E0, 0x0041),
            new ObUnicaseInfoChar(0x00C1, 0x00E1, 0x0041),
            new ObUnicaseInfoChar(0x00C2, 0x00E2, 0x0041),
            new ObUnicaseInfoChar(0x00C3, 0x00E3, 0x0041),
            new ObUnicaseInfoChar(0x00C4, 0x00E4, 0x0041),
            new ObUnicaseInfoChar(0x00C5, 0x00E5, 0x0041),
            new ObUnicaseInfoChar(0x00C6, 0x00E6, 0x00C6),
            new ObUnicaseInfoChar(0x00C7, 0x00E7, 0x0043),
            new ObUnicaseInfoChar(0x00C8, 0x00E8, 0x0045),
            new ObUnicaseInfoChar(0x00C9, 0x00E9, 0x0045),
            new ObUnicaseInfoChar(0x00CA, 0x00EA, 0x0045),
            new ObUnicaseInfoChar(0x00CB, 0x00EB, 0x0045),
            new ObUnicaseInfoChar(0x00CC, 0x00EC, 0x0049),
            new ObUnicaseInfoChar(0x00CD, 0x00ED, 0x0049),
            new ObUnicaseInfoChar(0x00CE, 0x00EE, 0x0049),
            new ObUnicaseInfoChar(0x00CF, 0x00EF, 0x0049),
            new ObUnicaseInfoChar(0x00D0, 0x00F0, 0x00D0),
            new ObUnicaseInfoChar(0x00D1, 0x00F1, 0x004E),
            new ObUnicaseInfoChar(0x00D2, 0x00F2, 0x004F),
            new ObUnicaseInfoChar(0x00D3, 0x00F3, 0x004F),
            new ObUnicaseInfoChar(0x00D4, 0x00F4, 0x004F),
            new ObUnicaseInfoChar(0x00D5, 0x00F5, 0x004F),
            new ObUnicaseInfoChar(0x00D6, 0x00F6, 0x004F),
            new ObUnicaseInfoChar(0x00F7, 0x00F7, 0x00F7),
            new ObUnicaseInfoChar(0x00D8, 0x00F8, 0x00D8),
            new ObUnicaseInfoChar(0x00D9, 0x00F9, 0x0055),
            new ObUnicaseInfoChar(0x00DA, 0x00FA, 0x0055),
            new ObUnicaseInfoChar(0x00DB, 0x00FB, 0x0055),
            new ObUnicaseInfoChar(0x00DC, 0x00FC, 0x0055),
            new ObUnicaseInfoChar(0x00DD, 0x00FD, 0x0059),
            new ObUnicaseInfoChar(0x00DE, 0x00FE, 0x00DE),
            new ObUnicaseInfoChar(0x0178, 0x00FF, 0x0059)          };

    public static ObUnicaseInfoChar[]   plane01                     = {
            new ObUnicaseInfoChar(0x0100, 0x0101, 0x0041),
            new ObUnicaseInfoChar(0x0100, 0x0101, 0x0041),
            new ObUnicaseInfoChar(0x0102, 0x0103, 0x0041),
            new ObUnicaseInfoChar(0x0102, 0x0103, 0x0041),
            new ObUnicaseInfoChar(0x0104, 0x0105, 0x0041),
            new ObUnicaseInfoChar(0x0104, 0x0105, 0x0041),
            new ObUnicaseInfoChar(0x0106, 0x0107, 0x0043),
            new ObUnicaseInfoChar(0x0106, 0x0107, 0x0043),
            new ObUnicaseInfoChar(0x0108, 0x0109, 0x0043),
            new ObUnicaseInfoChar(0x0108, 0x0109, 0x0043),
            new ObUnicaseInfoChar(0x010A, 0x010B, 0x0043),
            new ObUnicaseInfoChar(0x010A, 0x010B, 0x0043),
            new ObUnicaseInfoChar(0x010C, 0x010D, 0x0043),
            new ObUnicaseInfoChar(0x010C, 0x010D, 0x0043),
            new ObUnicaseInfoChar(0x010E, 0x010F, 0x0044),
            new ObUnicaseInfoChar(0x010E, 0x010F, 0x0044),
            new ObUnicaseInfoChar(0x0110, 0x0111, 0x0110),
            new ObUnicaseInfoChar(0x0110, 0x0111, 0x0110),
            new ObUnicaseInfoChar(0x0112, 0x0113, 0x0045),
            new ObUnicaseInfoChar(0x0112, 0x0113, 0x0045),
            new ObUnicaseInfoChar(0x0114, 0x0115, 0x0045),
            new ObUnicaseInfoChar(0x0114, 0x0115, 0x0045),
            new ObUnicaseInfoChar(0x0116, 0x0117, 0x0045),
            new ObUnicaseInfoChar(0x0116, 0x0117, 0x0045),
            new ObUnicaseInfoChar(0x0118, 0x0119, 0x0045),
            new ObUnicaseInfoChar(0x0118, 0x0119, 0x0045),
            new ObUnicaseInfoChar(0x011A, 0x011B, 0x0045),
            new ObUnicaseInfoChar(0x011A, 0x011B, 0x0045),
            new ObUnicaseInfoChar(0x011C, 0x011D, 0x0047),
            new ObUnicaseInfoChar(0x011C, 0x011D, 0x0047),
            new ObUnicaseInfoChar(0x011E, 0x011F, 0x0047),
            new ObUnicaseInfoChar(0x011E, 0x011F, 0x0047),
            new ObUnicaseInfoChar(0x0120, 0x0121, 0x0047),
            new ObUnicaseInfoChar(0x0120, 0x0121, 0x0047),
            new ObUnicaseInfoChar(0x0122, 0x0123, 0x0047),
            new ObUnicaseInfoChar(0x0122, 0x0123, 0x0047),
            new ObUnicaseInfoChar(0x0124, 0x0125, 0x0048),
            new ObUnicaseInfoChar(0x0124, 0x0125, 0x0048),
            new ObUnicaseInfoChar(0x0126, 0x0127, 0x0126),
            new ObUnicaseInfoChar(0x0126, 0x0127, 0x0126),
            new ObUnicaseInfoChar(0x0128, 0x0129, 0x0049),
            new ObUnicaseInfoChar(0x0128, 0x0129, 0x0049),
            new ObUnicaseInfoChar(0x012A, 0x012B, 0x0049),
            new ObUnicaseInfoChar(0x012A, 0x012B, 0x0049),
            new ObUnicaseInfoChar(0x012C, 0x012D, 0x0049),
            new ObUnicaseInfoChar(0x012C, 0x012D, 0x0049),
            new ObUnicaseInfoChar(0x012E, 0x012F, 0x0049),
            new ObUnicaseInfoChar(0x012E, 0x012F, 0x0049),
            new ObUnicaseInfoChar(0x0130, 0x0069, 0x0049),
            new ObUnicaseInfoChar(0x0049, 0x0131, 0x0049),
            new ObUnicaseInfoChar(0x0132, 0x0133, 0x0132),
            new ObUnicaseInfoChar(0x0132, 0x0133, 0x0132),
            new ObUnicaseInfoChar(0x0134, 0x0135, 0x004A),
            new ObUnicaseInfoChar(0x0134, 0x0135, 0x004A),
            new ObUnicaseInfoChar(0x0136, 0x0137, 0x004B),
            new ObUnicaseInfoChar(0x0136, 0x0137, 0x004B),
            new ObUnicaseInfoChar(0x0138, 0x0138, 0x0138),
            new ObUnicaseInfoChar(0x0139, 0x013A, 0x004C),
            new ObUnicaseInfoChar(0x0139, 0x013A, 0x004C),
            new ObUnicaseInfoChar(0x013B, 0x013C, 0x004C),
            new ObUnicaseInfoChar(0x013B, 0x013C, 0x004C),
            new ObUnicaseInfoChar(0x013D, 0x013E, 0x004C),
            new ObUnicaseInfoChar(0x013D, 0x013E, 0x004C),
            new ObUnicaseInfoChar(0x013F, 0x0140, 0x013F),
            new ObUnicaseInfoChar(0x013F, 0x0140, 0x013F),
            new ObUnicaseInfoChar(0x0141, 0x0142, 0x0141),
            new ObUnicaseInfoChar(0x0141, 0x0142, 0x0141),
            new ObUnicaseInfoChar(0x0143, 0x0144, 0x004E),
            new ObUnicaseInfoChar(0x0143, 0x0144, 0x004E),
            new ObUnicaseInfoChar(0x0145, 0x0146, 0x004E),
            new ObUnicaseInfoChar(0x0145, 0x0146, 0x004E),
            new ObUnicaseInfoChar(0x0147, 0x0148, 0x004E),
            new ObUnicaseInfoChar(0x0147, 0x0148, 0x004E),
            new ObUnicaseInfoChar(0x0149, 0x0149, 0x0149),
            new ObUnicaseInfoChar(0x014A, 0x014B, 0x014A),
            new ObUnicaseInfoChar(0x014A, 0x014B, 0x014A),
            new ObUnicaseInfoChar(0x014C, 0x014D, 0x004F),
            new ObUnicaseInfoChar(0x014C, 0x014D, 0x004F),
            new ObUnicaseInfoChar(0x014E, 0x014F, 0x004F),
            new ObUnicaseInfoChar(0x014E, 0x014F, 0x004F),
            new ObUnicaseInfoChar(0x0150, 0x0151, 0x004F),
            new ObUnicaseInfoChar(0x0150, 0x0151, 0x004F),
            new ObUnicaseInfoChar(0x0152, 0x0153, 0x0152),
            new ObUnicaseInfoChar(0x0152, 0x0153, 0x0152),
            new ObUnicaseInfoChar(0x0154, 0x0155, 0x0052),
            new ObUnicaseInfoChar(0x0154, 0x0155, 0x0052),
            new ObUnicaseInfoChar(0x0156, 0x0157, 0x0052),
            new ObUnicaseInfoChar(0x0156, 0x0157, 0x0052),
            new ObUnicaseInfoChar(0x0158, 0x0159, 0x0052),
            new ObUnicaseInfoChar(0x0158, 0x0159, 0x0052),
            new ObUnicaseInfoChar(0x015A, 0x015B, 0x0053),
            new ObUnicaseInfoChar(0x015A, 0x015B, 0x0053),
            new ObUnicaseInfoChar(0x015C, 0x015D, 0x0053),
            new ObUnicaseInfoChar(0x015C, 0x015D, 0x0053),
            new ObUnicaseInfoChar(0x015E, 0x015F, 0x0053),
            new ObUnicaseInfoChar(0x015E, 0x015F, 0x0053),
            new ObUnicaseInfoChar(0x0160, 0x0161, 0x0053),
            new ObUnicaseInfoChar(0x0160, 0x0161, 0x0053),
            new ObUnicaseInfoChar(0x0162, 0x0163, 0x0054),
            new ObUnicaseInfoChar(0x0162, 0x0163, 0x0054),
            new ObUnicaseInfoChar(0x0164, 0x0165, 0x0054),
            new ObUnicaseInfoChar(0x0164, 0x0165, 0x0054),
            new ObUnicaseInfoChar(0x0166, 0x0167, 0x0166),
            new ObUnicaseInfoChar(0x0166, 0x0167, 0x0166),
            new ObUnicaseInfoChar(0x0168, 0x0169, 0x0055),
            new ObUnicaseInfoChar(0x0168, 0x0169, 0x0055),
            new ObUnicaseInfoChar(0x016A, 0x016B, 0x0055),
            new ObUnicaseInfoChar(0x016A, 0x016B, 0x0055),
            new ObUnicaseInfoChar(0x016C, 0x016D, 0x0055),
            new ObUnicaseInfoChar(0x016C, 0x016D, 0x0055),
            new ObUnicaseInfoChar(0x016E, 0x016F, 0x0055),
            new ObUnicaseInfoChar(0x016E, 0x016F, 0x0055),
            new ObUnicaseInfoChar(0x0170, 0x0171, 0x0055),
            new ObUnicaseInfoChar(0x0170, 0x0171, 0x0055),
            new ObUnicaseInfoChar(0x0172, 0x0173, 0x0055),
            new ObUnicaseInfoChar(0x0172, 0x0173, 0x0055),
            new ObUnicaseInfoChar(0x0174, 0x0175, 0x0057),
            new ObUnicaseInfoChar(0x0174, 0x0175, 0x0057),
            new ObUnicaseInfoChar(0x0176, 0x0177, 0x0059),
            new ObUnicaseInfoChar(0x0176, 0x0177, 0x0059),
            new ObUnicaseInfoChar(0x0178, 0x00FF, 0x0059),
            new ObUnicaseInfoChar(0x0179, 0x017A, 0x005A),
            new ObUnicaseInfoChar(0x0179, 0x017A, 0x005A),
            new ObUnicaseInfoChar(0x017B, 0x017C, 0x005A),
            new ObUnicaseInfoChar(0x017B, 0x017C, 0x005A),
            new ObUnicaseInfoChar(0x017D, 0x017E, 0x005A),
            new ObUnicaseInfoChar(0x017D, 0x017E, 0x005A),
            new ObUnicaseInfoChar(0x0053, 0x017F, 0x0053),
            new ObUnicaseInfoChar(0x0180, 0x0180, 0x0180),
            new ObUnicaseInfoChar(0x0181, 0x0253, 0x0181),
            new ObUnicaseInfoChar(0x0182, 0x0183, 0x0182),
            new ObUnicaseInfoChar(0x0182, 0x0183, 0x0182),
            new ObUnicaseInfoChar(0x0184, 0x0185, 0x0184),
            new ObUnicaseInfoChar(0x0184, 0x0185, 0x0184),
            new ObUnicaseInfoChar(0x0186, 0x0254, 0x0186),
            new ObUnicaseInfoChar(0x0187, 0x0188, 0x0187),
            new ObUnicaseInfoChar(0x0187, 0x0188, 0x0187),
            new ObUnicaseInfoChar(0x0189, 0x0256, 0x0189),
            new ObUnicaseInfoChar(0x018A, 0x0257, 0x018A),
            new ObUnicaseInfoChar(0x018B, 0x018C, 0x018B),
            new ObUnicaseInfoChar(0x018B, 0x018C, 0x018B),
            new ObUnicaseInfoChar(0x018D, 0x018D, 0x018D),
            new ObUnicaseInfoChar(0x018E, 0x01DD, 0x018E),
            new ObUnicaseInfoChar(0x018F, 0x0259, 0x018F),
            new ObUnicaseInfoChar(0x0190, 0x025B, 0x0190),
            new ObUnicaseInfoChar(0x0191, 0x0192, 0x0191),
            new ObUnicaseInfoChar(0x0191, 0x0192, 0x0191),
            new ObUnicaseInfoChar(0x0193, 0x0260, 0x0193),
            new ObUnicaseInfoChar(0x0194, 0x0263, 0x0194),
            new ObUnicaseInfoChar(0x01F6, 0x0195, 0x01F6),
            new ObUnicaseInfoChar(0x0196, 0x0269, 0x0196),
            new ObUnicaseInfoChar(0x0197, 0x0268, 0x0197),
            new ObUnicaseInfoChar(0x0198, 0x0199, 0x0198),
            new ObUnicaseInfoChar(0x0198, 0x0199, 0x0198),
            new ObUnicaseInfoChar(0x019A, 0x019A, 0x019A),
            new ObUnicaseInfoChar(0x019B, 0x019B, 0x019B),
            new ObUnicaseInfoChar(0x019C, 0x026F, 0x019C),
            new ObUnicaseInfoChar(0x019D, 0x0272, 0x019D),
            new ObUnicaseInfoChar(0x019E, 0x019E, 0x019E),
            new ObUnicaseInfoChar(0x019F, 0x0275, 0x019F),
            new ObUnicaseInfoChar(0x01A0, 0x01A1, 0x004F),
            new ObUnicaseInfoChar(0x01A0, 0x01A1, 0x004F),
            new ObUnicaseInfoChar(0x01A2, 0x01A3, 0x01A2),
            new ObUnicaseInfoChar(0x01A2, 0x01A3, 0x01A2),
            new ObUnicaseInfoChar(0x01A4, 0x01A5, 0x01A4),
            new ObUnicaseInfoChar(0x01A4, 0x01A5, 0x01A4),
            new ObUnicaseInfoChar(0x01A6, 0x0280, 0x01A6),
            new ObUnicaseInfoChar(0x01A7, 0x01A8, 0x01A7),
            new ObUnicaseInfoChar(0x01A7, 0x01A8, 0x01A7),
            new ObUnicaseInfoChar(0x01A9, 0x0283, 0x01A9),
            new ObUnicaseInfoChar(0x01AA, 0x01AA, 0x01AA),
            new ObUnicaseInfoChar(0x01AB, 0x01AB, 0x01AB),
            new ObUnicaseInfoChar(0x01AC, 0x01AD, 0x01AC),
            new ObUnicaseInfoChar(0x01AC, 0x01AD, 0x01AC),
            new ObUnicaseInfoChar(0x01AE, 0x0288, 0x01AE),
            new ObUnicaseInfoChar(0x01AF, 0x01B0, 0x0055),
            new ObUnicaseInfoChar(0x01AF, 0x01B0, 0x0055),
            new ObUnicaseInfoChar(0x01B1, 0x028A, 0x01B1),
            new ObUnicaseInfoChar(0x01B2, 0x028B, 0x01B2),
            new ObUnicaseInfoChar(0x01B3, 0x01B4, 0x01B3),
            new ObUnicaseInfoChar(0x01B3, 0x01B4, 0x01B3),
            new ObUnicaseInfoChar(0x01B5, 0x01B6, 0x01B5),
            new ObUnicaseInfoChar(0x01B5, 0x01B6, 0x01B5),
            new ObUnicaseInfoChar(0x01B7, 0x0292, 0x01B7),
            new ObUnicaseInfoChar(0x01B8, 0x01B9, 0x01B8),
            new ObUnicaseInfoChar(0x01B8, 0x01B9, 0x01B8),
            new ObUnicaseInfoChar(0x01BA, 0x01BA, 0x01BA),
            new ObUnicaseInfoChar(0x01BB, 0x01BB, 0x01BB),
            new ObUnicaseInfoChar(0x01BC, 0x01BD, 0x01BC),
            new ObUnicaseInfoChar(0x01BC, 0x01BD, 0x01BC),
            new ObUnicaseInfoChar(0x01BE, 0x01BE, 0x01BE),
            new ObUnicaseInfoChar(0x01F7, 0x01BF, 0x01F7),
            new ObUnicaseInfoChar(0x01C0, 0x01C0, 0x01C0),
            new ObUnicaseInfoChar(0x01C1, 0x01C1, 0x01C1),
            new ObUnicaseInfoChar(0x01C2, 0x01C2, 0x01C2),
            new ObUnicaseInfoChar(0x01C3, 0x01C3, 0x01C3),
            new ObUnicaseInfoChar(0x01C4, 0x01C6, 0x01C4),
            new ObUnicaseInfoChar(0x01C4, 0x01C6, 0x01C4),
            new ObUnicaseInfoChar(0x01C4, 0x01C6, 0x01C4),
            new ObUnicaseInfoChar(0x01C7, 0x01C9, 0x01C7),
            new ObUnicaseInfoChar(0x01C7, 0x01C9, 0x01C7),
            new ObUnicaseInfoChar(0x01C7, 0x01C9, 0x01C7),
            new ObUnicaseInfoChar(0x01CA, 0x01CC, 0x01CA),
            new ObUnicaseInfoChar(0x01CA, 0x01CC, 0x01CA),
            new ObUnicaseInfoChar(0x01CA, 0x01CC, 0x01CA),
            new ObUnicaseInfoChar(0x01CD, 0x01CE, 0x0041),
            new ObUnicaseInfoChar(0x01CD, 0x01CE, 0x0041),
            new ObUnicaseInfoChar(0x01CF, 0x01D0, 0x0049),
            new ObUnicaseInfoChar(0x01CF, 0x01D0, 0x0049),
            new ObUnicaseInfoChar(0x01D1, 0x01D2, 0x004F),
            new ObUnicaseInfoChar(0x01D1, 0x01D2, 0x004F),
            new ObUnicaseInfoChar(0x01D3, 0x01D4, 0x0055),
            new ObUnicaseInfoChar(0x01D3, 0x01D4, 0x0055),
            new ObUnicaseInfoChar(0x01D5, 0x01D6, 0x0055),
            new ObUnicaseInfoChar(0x01D5, 0x01D6, 0x0055),
            new ObUnicaseInfoChar(0x01D7, 0x01D8, 0x0055),
            new ObUnicaseInfoChar(0x01D7, 0x01D8, 0x0055),
            new ObUnicaseInfoChar(0x01D9, 0x01DA, 0x0055),
            new ObUnicaseInfoChar(0x01D9, 0x01DA, 0x0055),
            new ObUnicaseInfoChar(0x01DB, 0x01DC, 0x0055),
            new ObUnicaseInfoChar(0x01DB, 0x01DC, 0x0055),
            new ObUnicaseInfoChar(0x018E, 0x01DD, 0x018E),
            new ObUnicaseInfoChar(0x01DE, 0x01DF, 0x0041),
            new ObUnicaseInfoChar(0x01DE, 0x01DF, 0x0041),
            new ObUnicaseInfoChar(0x01E0, 0x01E1, 0x0041),
            new ObUnicaseInfoChar(0x01E0, 0x01E1, 0x0041),
            new ObUnicaseInfoChar(0x01E2, 0x01E3, 0x00C6),
            new ObUnicaseInfoChar(0x01E2, 0x01E3, 0x00C6),
            new ObUnicaseInfoChar(0x01E4, 0x01E5, 0x01E4),
            new ObUnicaseInfoChar(0x01E4, 0x01E5, 0x01E4),
            new ObUnicaseInfoChar(0x01E6, 0x01E7, 0x0047),
            new ObUnicaseInfoChar(0x01E6, 0x01E7, 0x0047),
            new ObUnicaseInfoChar(0x01E8, 0x01E9, 0x004B),
            new ObUnicaseInfoChar(0x01E8, 0x01E9, 0x004B),
            new ObUnicaseInfoChar(0x01EA, 0x01EB, 0x004F),
            new ObUnicaseInfoChar(0x01EA, 0x01EB, 0x004F),
            new ObUnicaseInfoChar(0x01EC, 0x01ED, 0x004F),
            new ObUnicaseInfoChar(0x01EC, 0x01ED, 0x004F),
            new ObUnicaseInfoChar(0x01EE, 0x01EF, 0x01B7),
            new ObUnicaseInfoChar(0x01EE, 0x01EF, 0x01B7),
            new ObUnicaseInfoChar(0x01F0, 0x01F0, 0x004A),
            new ObUnicaseInfoChar(0x01F1, 0x01F3, 0x01F1),
            new ObUnicaseInfoChar(0x01F1, 0x01F3, 0x01F1),
            new ObUnicaseInfoChar(0x01F1, 0x01F3, 0x01F1),
            new ObUnicaseInfoChar(0x01F4, 0x01F5, 0x0047),
            new ObUnicaseInfoChar(0x01F4, 0x01F5, 0x0047),
            new ObUnicaseInfoChar(0x01F6, 0x0195, 0x01F6),
            new ObUnicaseInfoChar(0x01F7, 0x01BF, 0x01F7),
            new ObUnicaseInfoChar(0x01F8, 0x01F9, 0x004E),
            new ObUnicaseInfoChar(0x01F8, 0x01F9, 0x004E),
            new ObUnicaseInfoChar(0x01FA, 0x01FB, 0x0041),
            new ObUnicaseInfoChar(0x01FA, 0x01FB, 0x0041),
            new ObUnicaseInfoChar(0x01FC, 0x01FD, 0x00C6),
            new ObUnicaseInfoChar(0x01FC, 0x01FD, 0x00C6),
            new ObUnicaseInfoChar(0x01FE, 0x01FF, 0x00D8),
            new ObUnicaseInfoChar(0x01FE, 0x01FF, 0x00D8)          };

    public static ObUnicaseInfoChar[]   plane02                     = {
            new ObUnicaseInfoChar(0x0200, 0x0201, 0x0041),
            new ObUnicaseInfoChar(0x0200, 0x0201, 0x0041),
            new ObUnicaseInfoChar(0x0202, 0x0203, 0x0041),
            new ObUnicaseInfoChar(0x0202, 0x0203, 0x0041),
            new ObUnicaseInfoChar(0x0204, 0x0205, 0x0045),
            new ObUnicaseInfoChar(0x0204, 0x0205, 0x0045),
            new ObUnicaseInfoChar(0x0206, 0x0207, 0x0045),
            new ObUnicaseInfoChar(0x0206, 0x0207, 0x0045),
            new ObUnicaseInfoChar(0x0208, 0x0209, 0x0049),
            new ObUnicaseInfoChar(0x0208, 0x0209, 0x0049),
            new ObUnicaseInfoChar(0x020A, 0x020B, 0x0049),
            new ObUnicaseInfoChar(0x020A, 0x020B, 0x0049),
            new ObUnicaseInfoChar(0x020C, 0x020D, 0x004F),
            new ObUnicaseInfoChar(0x020C, 0x020D, 0x004F),
            new ObUnicaseInfoChar(0x020E, 0x020F, 0x004F),
            new ObUnicaseInfoChar(0x020E, 0x020F, 0x004F),
            new ObUnicaseInfoChar(0x0210, 0x0211, 0x0052),
            new ObUnicaseInfoChar(0x0210, 0x0211, 0x0052),
            new ObUnicaseInfoChar(0x0212, 0x0213, 0x0052),
            new ObUnicaseInfoChar(0x0212, 0x0213, 0x0052),
            new ObUnicaseInfoChar(0x0214, 0x0215, 0x0055),
            new ObUnicaseInfoChar(0x0214, 0x0215, 0x0055),
            new ObUnicaseInfoChar(0x0216, 0x0217, 0x0055),
            new ObUnicaseInfoChar(0x0216, 0x0217, 0x0055),
            new ObUnicaseInfoChar(0x0218, 0x0219, 0x0053),
            new ObUnicaseInfoChar(0x0218, 0x0219, 0x0053),
            new ObUnicaseInfoChar(0x021A, 0x021B, 0x0054),
            new ObUnicaseInfoChar(0x021A, 0x021B, 0x0054),
            new ObUnicaseInfoChar(0x021C, 0x021D, 0x021C),
            new ObUnicaseInfoChar(0x021C, 0x021D, 0x021C),
            new ObUnicaseInfoChar(0x021E, 0x021F, 0x0048),
            new ObUnicaseInfoChar(0x021E, 0x021F, 0x0048),
            new ObUnicaseInfoChar(0x0220, 0x0220, 0x0220),
            new ObUnicaseInfoChar(0x0221, 0x0221, 0x0221),
            new ObUnicaseInfoChar(0x0222, 0x0223, 0x0222),
            new ObUnicaseInfoChar(0x0222, 0x0223, 0x0222),
            new ObUnicaseInfoChar(0x0224, 0x0225, 0x0224),
            new ObUnicaseInfoChar(0x0224, 0x0225, 0x0224),
            new ObUnicaseInfoChar(0x0226, 0x0227, 0x0041),
            new ObUnicaseInfoChar(0x0226, 0x0227, 0x0041),
            new ObUnicaseInfoChar(0x0228, 0x0229, 0x0045),
            new ObUnicaseInfoChar(0x0228, 0x0229, 0x0045),
            new ObUnicaseInfoChar(0x022A, 0x022B, 0x004F),
            new ObUnicaseInfoChar(0x022A, 0x022B, 0x004F),
            new ObUnicaseInfoChar(0x022C, 0x022D, 0x004F),
            new ObUnicaseInfoChar(0x022C, 0x022D, 0x004F),
            new ObUnicaseInfoChar(0x022E, 0x022F, 0x004F),
            new ObUnicaseInfoChar(0x022E, 0x022F, 0x004F),
            new ObUnicaseInfoChar(0x0230, 0x0231, 0x004F),
            new ObUnicaseInfoChar(0x0230, 0x0231, 0x004F),
            new ObUnicaseInfoChar(0x0232, 0x0233, 0x0059),
            new ObUnicaseInfoChar(0x0232, 0x0233, 0x0059),
            new ObUnicaseInfoChar(0x0234, 0x0234, 0x0234),
            new ObUnicaseInfoChar(0x0235, 0x0235, 0x0235),
            new ObUnicaseInfoChar(0x0236, 0x0236, 0x0236),
            new ObUnicaseInfoChar(0x0237, 0x0237, 0x0237),
            new ObUnicaseInfoChar(0x0238, 0x0238, 0x0238),
            new ObUnicaseInfoChar(0x0239, 0x0239, 0x0239),
            new ObUnicaseInfoChar(0x023A, 0x023A, 0x023A),
            new ObUnicaseInfoChar(0x023B, 0x023B, 0x023B),
            new ObUnicaseInfoChar(0x023C, 0x023C, 0x023C),
            new ObUnicaseInfoChar(0x023D, 0x023D, 0x023D),
            new ObUnicaseInfoChar(0x023E, 0x023E, 0x023E),
            new ObUnicaseInfoChar(0x023F, 0x023F, 0x023F),
            new ObUnicaseInfoChar(0x0240, 0x0240, 0x0240),
            new ObUnicaseInfoChar(0x0241, 0x0241, 0x0241),
            new ObUnicaseInfoChar(0x0242, 0x0242, 0x0242),
            new ObUnicaseInfoChar(0x0243, 0x0243, 0x0243),
            new ObUnicaseInfoChar(0x0244, 0x0244, 0x0244),
            new ObUnicaseInfoChar(0x0245, 0x0245, 0x0245),
            new ObUnicaseInfoChar(0x0246, 0x0246, 0x0246),
            new ObUnicaseInfoChar(0x0247, 0x0247, 0x0247),
            new ObUnicaseInfoChar(0x0248, 0x0248, 0x0248),
            new ObUnicaseInfoChar(0x0249, 0x0249, 0x0249),
            new ObUnicaseInfoChar(0x024A, 0x024A, 0x024A),
            new ObUnicaseInfoChar(0x024B, 0x024B, 0x024B),
            new ObUnicaseInfoChar(0x024C, 0x024C, 0x024C),
            new ObUnicaseInfoChar(0x024D, 0x024D, 0x024D),
            new ObUnicaseInfoChar(0x024E, 0x024E, 0x024E),
            new ObUnicaseInfoChar(0x024F, 0x024F, 0x024F),
            new ObUnicaseInfoChar(0x0250, 0x0250, 0x0250),
            new ObUnicaseInfoChar(0x0251, 0x0251, 0x0251),
            new ObUnicaseInfoChar(0x0252, 0x0252, 0x0252),
            new ObUnicaseInfoChar(0x0181, 0x0253, 0x0181),
            new ObUnicaseInfoChar(0x0186, 0x0254, 0x0186),
            new ObUnicaseInfoChar(0x0255, 0x0255, 0x0255),
            new ObUnicaseInfoChar(0x0189, 0x0256, 0x0189),
            new ObUnicaseInfoChar(0x018A, 0x0257, 0x018A),
            new ObUnicaseInfoChar(0x0258, 0x0258, 0x0258),
            new ObUnicaseInfoChar(0x018F, 0x0259, 0x018F),
            new ObUnicaseInfoChar(0x025A, 0x025A, 0x025A),
            new ObUnicaseInfoChar(0x0190, 0x025B, 0x0190),
            new ObUnicaseInfoChar(0x025C, 0x025C, 0x025C),
            new ObUnicaseInfoChar(0x025D, 0x025D, 0x025D),
            new ObUnicaseInfoChar(0x025E, 0x025E, 0x025E),
            new ObUnicaseInfoChar(0x025F, 0x025F, 0x025F),
            new ObUnicaseInfoChar(0x0193, 0x0260, 0x0193),
            new ObUnicaseInfoChar(0x0261, 0x0261, 0x0261),
            new ObUnicaseInfoChar(0x0262, 0x0262, 0x0262),
            new ObUnicaseInfoChar(0x0194, 0x0263, 0x0194),
            new ObUnicaseInfoChar(0x0264, 0x0264, 0x0264),
            new ObUnicaseInfoChar(0x0265, 0x0265, 0x0265),
            new ObUnicaseInfoChar(0x0266, 0x0266, 0x0266),
            new ObUnicaseInfoChar(0x0267, 0x0267, 0x0267),
            new ObUnicaseInfoChar(0x0197, 0x0268, 0x0197),
            new ObUnicaseInfoChar(0x0196, 0x0269, 0x0196),
            new ObUnicaseInfoChar(0x026A, 0x026A, 0x026A),
            new ObUnicaseInfoChar(0x026B, 0x026B, 0x026B),
            new ObUnicaseInfoChar(0x026C, 0x026C, 0x026C),
            new ObUnicaseInfoChar(0x026D, 0x026D, 0x026D),
            new ObUnicaseInfoChar(0x026E, 0x026E, 0x026E),
            new ObUnicaseInfoChar(0x019C, 0x026F, 0x019C),
            new ObUnicaseInfoChar(0x0270, 0x0270, 0x0270),
            new ObUnicaseInfoChar(0x0271, 0x0271, 0x0271),
            new ObUnicaseInfoChar(0x019D, 0x0272, 0x019D),
            new ObUnicaseInfoChar(0x0273, 0x0273, 0x0273),
            new ObUnicaseInfoChar(0x0274, 0x0274, 0x0274),
            new ObUnicaseInfoChar(0x019F, 0x0275, 0x019F),
            new ObUnicaseInfoChar(0x0276, 0x0276, 0x0276),
            new ObUnicaseInfoChar(0x0277, 0x0277, 0x0277),
            new ObUnicaseInfoChar(0x0278, 0x0278, 0x0278),
            new ObUnicaseInfoChar(0x0279, 0x0279, 0x0279),
            new ObUnicaseInfoChar(0x027A, 0x027A, 0x027A),
            new ObUnicaseInfoChar(0x027B, 0x027B, 0x027B),
            new ObUnicaseInfoChar(0x027C, 0x027C, 0x027C),
            new ObUnicaseInfoChar(0x027D, 0x027D, 0x027D),
            new ObUnicaseInfoChar(0x027E, 0x027E, 0x027E),
            new ObUnicaseInfoChar(0x027F, 0x027F, 0x027F),
            new ObUnicaseInfoChar(0x01A6, 0x0280, 0x01A6),
            new ObUnicaseInfoChar(0x0281, 0x0281, 0x0281),
            new ObUnicaseInfoChar(0x0282, 0x0282, 0x0282),
            new ObUnicaseInfoChar(0x01A9, 0x0283, 0x01A9),
            new ObUnicaseInfoChar(0x0284, 0x0284, 0x0284),
            new ObUnicaseInfoChar(0x0285, 0x0285, 0x0285),
            new ObUnicaseInfoChar(0x0286, 0x0286, 0x0286),
            new ObUnicaseInfoChar(0x0287, 0x0287, 0x0287),
            new ObUnicaseInfoChar(0x01AE, 0x0288, 0x01AE),
            new ObUnicaseInfoChar(0x0289, 0x0289, 0x0289),
            new ObUnicaseInfoChar(0x01B1, 0x028A, 0x01B1),
            new ObUnicaseInfoChar(0x01B2, 0x028B, 0x01B2),
            new ObUnicaseInfoChar(0x028C, 0x028C, 0x028C),
            new ObUnicaseInfoChar(0x028D, 0x028D, 0x028D),
            new ObUnicaseInfoChar(0x028E, 0x028E, 0x028E),
            new ObUnicaseInfoChar(0x028F, 0x028F, 0x028F),
            new ObUnicaseInfoChar(0x0290, 0x0290, 0x0290),
            new ObUnicaseInfoChar(0x0291, 0x0291, 0x0291),
            new ObUnicaseInfoChar(0x01B7, 0x0292, 0x01B7),
            new ObUnicaseInfoChar(0x0293, 0x0293, 0x0293),
            new ObUnicaseInfoChar(0x0294, 0x0294, 0x0294),
            new ObUnicaseInfoChar(0x0295, 0x0295, 0x0295),
            new ObUnicaseInfoChar(0x0296, 0x0296, 0x0296),
            new ObUnicaseInfoChar(0x0297, 0x0297, 0x0297),
            new ObUnicaseInfoChar(0x0298, 0x0298, 0x0298),
            new ObUnicaseInfoChar(0x0299, 0x0299, 0x0299),
            new ObUnicaseInfoChar(0x029A, 0x029A, 0x029A),
            new ObUnicaseInfoChar(0x029B, 0x029B, 0x029B),
            new ObUnicaseInfoChar(0x029C, 0x029C, 0x029C),
            new ObUnicaseInfoChar(0x029D, 0x029D, 0x029D),
            new ObUnicaseInfoChar(0x029E, 0x029E, 0x029E),
            new ObUnicaseInfoChar(0x029F, 0x029F, 0x029F),
            new ObUnicaseInfoChar(0x02A0, 0x02A0, 0x02A0),
            new ObUnicaseInfoChar(0x02A1, 0x02A1, 0x02A1),
            new ObUnicaseInfoChar(0x02A2, 0x02A2, 0x02A2),
            new ObUnicaseInfoChar(0x02A3, 0x02A3, 0x02A3),
            new ObUnicaseInfoChar(0x02A4, 0x02A4, 0x02A4),
            new ObUnicaseInfoChar(0x02A5, 0x02A5, 0x02A5),
            new ObUnicaseInfoChar(0x02A6, 0x02A6, 0x02A6),
            new ObUnicaseInfoChar(0x02A7, 0x02A7, 0x02A7),
            new ObUnicaseInfoChar(0x02A8, 0x02A8, 0x02A8),
            new ObUnicaseInfoChar(0x02A9, 0x02A9, 0x02A9),
            new ObUnicaseInfoChar(0x02AA, 0x02AA, 0x02AA),
            new ObUnicaseInfoChar(0x02AB, 0x02AB, 0x02AB),
            new ObUnicaseInfoChar(0x02AC, 0x02AC, 0x02AC),
            new ObUnicaseInfoChar(0x02AD, 0x02AD, 0x02AD),
            new ObUnicaseInfoChar(0x02AE, 0x02AE, 0x02AE),
            new ObUnicaseInfoChar(0x02AF, 0x02AF, 0x02AF),
            new ObUnicaseInfoChar(0x02B0, 0x02B0, 0x02B0),
            new ObUnicaseInfoChar(0x02B1, 0x02B1, 0x02B1),
            new ObUnicaseInfoChar(0x02B2, 0x02B2, 0x02B2),
            new ObUnicaseInfoChar(0x02B3, 0x02B3, 0x02B3),
            new ObUnicaseInfoChar(0x02B4, 0x02B4, 0x02B4),
            new ObUnicaseInfoChar(0x02B5, 0x02B5, 0x02B5),
            new ObUnicaseInfoChar(0x02B6, 0x02B6, 0x02B6),
            new ObUnicaseInfoChar(0x02B7, 0x02B7, 0x02B7),
            new ObUnicaseInfoChar(0x02B8, 0x02B8, 0x02B8),
            new ObUnicaseInfoChar(0x02B9, 0x02B9, 0x02B9),
            new ObUnicaseInfoChar(0x02BA, 0x02BA, 0x02BA),
            new ObUnicaseInfoChar(0x02BB, 0x02BB, 0x02BB),
            new ObUnicaseInfoChar(0x02BC, 0x02BC, 0x02BC),
            new ObUnicaseInfoChar(0x02BD, 0x02BD, 0x02BD),
            new ObUnicaseInfoChar(0x02BE, 0x02BE, 0x02BE),
            new ObUnicaseInfoChar(0x02BF, 0x02BF, 0x02BF),
            new ObUnicaseInfoChar(0x02C0, 0x02C0, 0x02C0),
            new ObUnicaseInfoChar(0x02C1, 0x02C1, 0x02C1),
            new ObUnicaseInfoChar(0x02C2, 0x02C2, 0x02C2),
            new ObUnicaseInfoChar(0x02C3, 0x02C3, 0x02C3),
            new ObUnicaseInfoChar(0x02C4, 0x02C4, 0x02C4),
            new ObUnicaseInfoChar(0x02C5, 0x02C5, 0x02C5),
            new ObUnicaseInfoChar(0x02C6, 0x02C6, 0x02C6),
            new ObUnicaseInfoChar(0x02C7, 0x02C7, 0x02C7),
            new ObUnicaseInfoChar(0x02C8, 0x02C8, 0x02C8),
            new ObUnicaseInfoChar(0x02C9, 0x02C9, 0x02C9),
            new ObUnicaseInfoChar(0x02CA, 0x02CA, 0x02CA),
            new ObUnicaseInfoChar(0x02CB, 0x02CB, 0x02CB),
            new ObUnicaseInfoChar(0x02CC, 0x02CC, 0x02CC),
            new ObUnicaseInfoChar(0x02CD, 0x02CD, 0x02CD),
            new ObUnicaseInfoChar(0x02CE, 0x02CE, 0x02CE),
            new ObUnicaseInfoChar(0x02CF, 0x02CF, 0x02CF),
            new ObUnicaseInfoChar(0x02D0, 0x02D0, 0x02D0),
            new ObUnicaseInfoChar(0x02D1, 0x02D1, 0x02D1),
            new ObUnicaseInfoChar(0x02D2, 0x02D2, 0x02D2),
            new ObUnicaseInfoChar(0x02D3, 0x02D3, 0x02D3),
            new ObUnicaseInfoChar(0x02D4, 0x02D4, 0x02D4),
            new ObUnicaseInfoChar(0x02D5, 0x02D5, 0x02D5),
            new ObUnicaseInfoChar(0x02D6, 0x02D6, 0x02D6),
            new ObUnicaseInfoChar(0x02D7, 0x02D7, 0x02D7),
            new ObUnicaseInfoChar(0x02D8, 0x02D8, 0x02D8),
            new ObUnicaseInfoChar(0x02D9, 0x02D9, 0x02D9),
            new ObUnicaseInfoChar(0x02DA, 0x02DA, 0x02DA),
            new ObUnicaseInfoChar(0x02DB, 0x02DB, 0x02DB),
            new ObUnicaseInfoChar(0x02DC, 0x02DC, 0x02DC),
            new ObUnicaseInfoChar(0x02DD, 0x02DD, 0x02DD),
            new ObUnicaseInfoChar(0x02DE, 0x02DE, 0x02DE),
            new ObUnicaseInfoChar(0x02DF, 0x02DF, 0x02DF),
            new ObUnicaseInfoChar(0x02E0, 0x02E0, 0x02E0),
            new ObUnicaseInfoChar(0x02E1, 0x02E1, 0x02E1),
            new ObUnicaseInfoChar(0x02E2, 0x02E2, 0x02E2),
            new ObUnicaseInfoChar(0x02E3, 0x02E3, 0x02E3),
            new ObUnicaseInfoChar(0x02E4, 0x02E4, 0x02E4),
            new ObUnicaseInfoChar(0x02E5, 0x02E5, 0x02E5),
            new ObUnicaseInfoChar(0x02E6, 0x02E6, 0x02E6),
            new ObUnicaseInfoChar(0x02E7, 0x02E7, 0x02E7),
            new ObUnicaseInfoChar(0x02E8, 0x02E8, 0x02E8),
            new ObUnicaseInfoChar(0x02E9, 0x02E9, 0x02E9),
            new ObUnicaseInfoChar(0x02EA, 0x02EA, 0x02EA),
            new ObUnicaseInfoChar(0x02EB, 0x02EB, 0x02EB),
            new ObUnicaseInfoChar(0x02EC, 0x02EC, 0x02EC),
            new ObUnicaseInfoChar(0x02ED, 0x02ED, 0x02ED),
            new ObUnicaseInfoChar(0x02EE, 0x02EE, 0x02EE),
            new ObUnicaseInfoChar(0x02EF, 0x02EF, 0x02EF),
            new ObUnicaseInfoChar(0x02F0, 0x02F0, 0x02F0),
            new ObUnicaseInfoChar(0x02F1, 0x02F1, 0x02F1),
            new ObUnicaseInfoChar(0x02F2, 0x02F2, 0x02F2),
            new ObUnicaseInfoChar(0x02F3, 0x02F3, 0x02F3),
            new ObUnicaseInfoChar(0x02F4, 0x02F4, 0x02F4),
            new ObUnicaseInfoChar(0x02F5, 0x02F5, 0x02F5),
            new ObUnicaseInfoChar(0x02F6, 0x02F6, 0x02F6),
            new ObUnicaseInfoChar(0x02F7, 0x02F7, 0x02F7),
            new ObUnicaseInfoChar(0x02F8, 0x02F8, 0x02F8),
            new ObUnicaseInfoChar(0x02F9, 0x02F9, 0x02F9),
            new ObUnicaseInfoChar(0x02FA, 0x02FA, 0x02FA),
            new ObUnicaseInfoChar(0x02FB, 0x02FB, 0x02FB),
            new ObUnicaseInfoChar(0x02FC, 0x02FC, 0x02FC),
            new ObUnicaseInfoChar(0x02FD, 0x02FD, 0x02FD),
            new ObUnicaseInfoChar(0x02FE, 0x02FE, 0x02FE),
            new ObUnicaseInfoChar(0x02FF, 0x02FF, 0x02FF)          };

    public static ObUnicaseInfoChar[]   plane03                     = {
            new ObUnicaseInfoChar(0x0300, 0x0300, 0x0300),
            new ObUnicaseInfoChar(0x0301, 0x0301, 0x0301),
            new ObUnicaseInfoChar(0x0302, 0x0302, 0x0302),
            new ObUnicaseInfoChar(0x0303, 0x0303, 0x0303),
            new ObUnicaseInfoChar(0x0304, 0x0304, 0x0304),
            new ObUnicaseInfoChar(0x0305, 0x0305, 0x0305),
            new ObUnicaseInfoChar(0x0306, 0x0306, 0x0306),
            new ObUnicaseInfoChar(0x0307, 0x0307, 0x0307),
            new ObUnicaseInfoChar(0x0308, 0x0308, 0x0308),
            new ObUnicaseInfoChar(0x0309, 0x0309, 0x0309),
            new ObUnicaseInfoChar(0x030A, 0x030A, 0x030A),
            new ObUnicaseInfoChar(0x030B, 0x030B, 0x030B),
            new ObUnicaseInfoChar(0x030C, 0x030C, 0x030C),
            new ObUnicaseInfoChar(0x030D, 0x030D, 0x030D),
            new ObUnicaseInfoChar(0x030E, 0x030E, 0x030E),
            new ObUnicaseInfoChar(0x030F, 0x030F, 0x030F),
            new ObUnicaseInfoChar(0x0310, 0x0310, 0x0310),
            new ObUnicaseInfoChar(0x0311, 0x0311, 0x0311),
            new ObUnicaseInfoChar(0x0312, 0x0312, 0x0312),
            new ObUnicaseInfoChar(0x0313, 0x0313, 0x0313),
            new ObUnicaseInfoChar(0x0314, 0x0314, 0x0314),
            new ObUnicaseInfoChar(0x0315, 0x0315, 0x0315),
            new ObUnicaseInfoChar(0x0316, 0x0316, 0x0316),
            new ObUnicaseInfoChar(0x0317, 0x0317, 0x0317),
            new ObUnicaseInfoChar(0x0318, 0x0318, 0x0318),
            new ObUnicaseInfoChar(0x0319, 0x0319, 0x0319),
            new ObUnicaseInfoChar(0x031A, 0x031A, 0x031A),
            new ObUnicaseInfoChar(0x031B, 0x031B, 0x031B),
            new ObUnicaseInfoChar(0x031C, 0x031C, 0x031C),
            new ObUnicaseInfoChar(0x031D, 0x031D, 0x031D),
            new ObUnicaseInfoChar(0x031E, 0x031E, 0x031E),
            new ObUnicaseInfoChar(0x031F, 0x031F, 0x031F),
            new ObUnicaseInfoChar(0x0320, 0x0320, 0x0320),
            new ObUnicaseInfoChar(0x0321, 0x0321, 0x0321),
            new ObUnicaseInfoChar(0x0322, 0x0322, 0x0322),
            new ObUnicaseInfoChar(0x0323, 0x0323, 0x0323),
            new ObUnicaseInfoChar(0x0324, 0x0324, 0x0324),
            new ObUnicaseInfoChar(0x0325, 0x0325, 0x0325),
            new ObUnicaseInfoChar(0x0326, 0x0326, 0x0326),
            new ObUnicaseInfoChar(0x0327, 0x0327, 0x0327),
            new ObUnicaseInfoChar(0x0328, 0x0328, 0x0328),
            new ObUnicaseInfoChar(0x0329, 0x0329, 0x0329),
            new ObUnicaseInfoChar(0x032A, 0x032A, 0x032A),
            new ObUnicaseInfoChar(0x032B, 0x032B, 0x032B),
            new ObUnicaseInfoChar(0x032C, 0x032C, 0x032C),
            new ObUnicaseInfoChar(0x032D, 0x032D, 0x032D),
            new ObUnicaseInfoChar(0x032E, 0x032E, 0x032E),
            new ObUnicaseInfoChar(0x032F, 0x032F, 0x032F),
            new ObUnicaseInfoChar(0x0330, 0x0330, 0x0330),
            new ObUnicaseInfoChar(0x0331, 0x0331, 0x0331),
            new ObUnicaseInfoChar(0x0332, 0x0332, 0x0332),
            new ObUnicaseInfoChar(0x0333, 0x0333, 0x0333),
            new ObUnicaseInfoChar(0x0334, 0x0334, 0x0334),
            new ObUnicaseInfoChar(0x0335, 0x0335, 0x0335),
            new ObUnicaseInfoChar(0x0336, 0x0336, 0x0336),
            new ObUnicaseInfoChar(0x0337, 0x0337, 0x0337),
            new ObUnicaseInfoChar(0x0338, 0x0338, 0x0338),
            new ObUnicaseInfoChar(0x0339, 0x0339, 0x0339),
            new ObUnicaseInfoChar(0x033A, 0x033A, 0x033A),
            new ObUnicaseInfoChar(0x033B, 0x033B, 0x033B),
            new ObUnicaseInfoChar(0x033C, 0x033C, 0x033C),
            new ObUnicaseInfoChar(0x033D, 0x033D, 0x033D),
            new ObUnicaseInfoChar(0x033E, 0x033E, 0x033E),
            new ObUnicaseInfoChar(0x033F, 0x033F, 0x033F),
            new ObUnicaseInfoChar(0x0340, 0x0340, 0x0340),
            new ObUnicaseInfoChar(0x0341, 0x0341, 0x0341),
            new ObUnicaseInfoChar(0x0342, 0x0342, 0x0342),
            new ObUnicaseInfoChar(0x0343, 0x0343, 0x0343),
            new ObUnicaseInfoChar(0x0344, 0x0344, 0x0344),
            new ObUnicaseInfoChar(0x0399, 0x0345, 0x0399),
            new ObUnicaseInfoChar(0x0346, 0x0346, 0x0346),
            new ObUnicaseInfoChar(0x0347, 0x0347, 0x0347),
            new ObUnicaseInfoChar(0x0348, 0x0348, 0x0348),
            new ObUnicaseInfoChar(0x0349, 0x0349, 0x0349),
            new ObUnicaseInfoChar(0x034A, 0x034A, 0x034A),
            new ObUnicaseInfoChar(0x034B, 0x034B, 0x034B),
            new ObUnicaseInfoChar(0x034C, 0x034C, 0x034C),
            new ObUnicaseInfoChar(0x034D, 0x034D, 0x034D),
            new ObUnicaseInfoChar(0x034E, 0x034E, 0x034E),
            new ObUnicaseInfoChar(0x034F, 0x034F, 0x034F),
            new ObUnicaseInfoChar(0x0350, 0x0350, 0x0350),
            new ObUnicaseInfoChar(0x0351, 0x0351, 0x0351),
            new ObUnicaseInfoChar(0x0352, 0x0352, 0x0352),
            new ObUnicaseInfoChar(0x0353, 0x0353, 0x0353),
            new ObUnicaseInfoChar(0x0354, 0x0354, 0x0354),
            new ObUnicaseInfoChar(0x0355, 0x0355, 0x0355),
            new ObUnicaseInfoChar(0x0356, 0x0356, 0x0356),
            new ObUnicaseInfoChar(0x0357, 0x0357, 0x0357),
            new ObUnicaseInfoChar(0x0358, 0x0358, 0x0358),
            new ObUnicaseInfoChar(0x0359, 0x0359, 0x0359),
            new ObUnicaseInfoChar(0x035A, 0x035A, 0x035A),
            new ObUnicaseInfoChar(0x035B, 0x035B, 0x035B),
            new ObUnicaseInfoChar(0x035C, 0x035C, 0x035C),
            new ObUnicaseInfoChar(0x035D, 0x035D, 0x035D),
            new ObUnicaseInfoChar(0x035E, 0x035E, 0x035E),
            new ObUnicaseInfoChar(0x035F, 0x035F, 0x035F),
            new ObUnicaseInfoChar(0x0360, 0x0360, 0x0360),
            new ObUnicaseInfoChar(0x0361, 0x0361, 0x0361),
            new ObUnicaseInfoChar(0x0362, 0x0362, 0x0362),
            new ObUnicaseInfoChar(0x0363, 0x0363, 0x0363),
            new ObUnicaseInfoChar(0x0364, 0x0364, 0x0364),
            new ObUnicaseInfoChar(0x0365, 0x0365, 0x0365),
            new ObUnicaseInfoChar(0x0366, 0x0366, 0x0366),
            new ObUnicaseInfoChar(0x0367, 0x0367, 0x0367),
            new ObUnicaseInfoChar(0x0368, 0x0368, 0x0368),
            new ObUnicaseInfoChar(0x0369, 0x0369, 0x0369),
            new ObUnicaseInfoChar(0x036A, 0x036A, 0x036A),
            new ObUnicaseInfoChar(0x036B, 0x036B, 0x036B),
            new ObUnicaseInfoChar(0x036C, 0x036C, 0x036C),
            new ObUnicaseInfoChar(0x036D, 0x036D, 0x036D),
            new ObUnicaseInfoChar(0x036E, 0x036E, 0x036E),
            new ObUnicaseInfoChar(0x036F, 0x036F, 0x036F),
            new ObUnicaseInfoChar(0x0370, 0x0370, 0x0370),
            new ObUnicaseInfoChar(0x0371, 0x0371, 0x0371),
            new ObUnicaseInfoChar(0x0372, 0x0372, 0x0372),
            new ObUnicaseInfoChar(0x0373, 0x0373, 0x0373),
            new ObUnicaseInfoChar(0x0374, 0x0374, 0x0374),
            new ObUnicaseInfoChar(0x0375, 0x0375, 0x0375),
            new ObUnicaseInfoChar(0x0376, 0x0376, 0x0376),
            new ObUnicaseInfoChar(0x0377, 0x0377, 0x0377),
            new ObUnicaseInfoChar(0x0378, 0x0378, 0x0378),
            new ObUnicaseInfoChar(0x0379, 0x0379, 0x0379),
            new ObUnicaseInfoChar(0x037A, 0x037A, 0x037A),
            new ObUnicaseInfoChar(0x037B, 0x037B, 0x037B),
            new ObUnicaseInfoChar(0x037C, 0x037C, 0x037C),
            new ObUnicaseInfoChar(0x037D, 0x037D, 0x037D),
            new ObUnicaseInfoChar(0x037E, 0x037E, 0x037E),
            new ObUnicaseInfoChar(0x037F, 0x037F, 0x037F),
            new ObUnicaseInfoChar(0x0380, 0x0380, 0x0380),
            new ObUnicaseInfoChar(0x0381, 0x0381, 0x0381),
            new ObUnicaseInfoChar(0x0382, 0x0382, 0x0382),
            new ObUnicaseInfoChar(0x0383, 0x0383, 0x0383),
            new ObUnicaseInfoChar(0x0384, 0x0384, 0x0384),
            new ObUnicaseInfoChar(0x0385, 0x0385, 0x0385),
            new ObUnicaseInfoChar(0x0386, 0x03AC, 0x0391),
            new ObUnicaseInfoChar(0x0387, 0x0387, 0x0387),
            new ObUnicaseInfoChar(0x0388, 0x03AD, 0x0395),
            new ObUnicaseInfoChar(0x0389, 0x03AE, 0x0397),
            new ObUnicaseInfoChar(0x038A, 0x03AF, 0x0399),
            new ObUnicaseInfoChar(0x038B, 0x038B, 0x038B),
            new ObUnicaseInfoChar(0x038C, 0x03CC, 0x039F),
            new ObUnicaseInfoChar(0x038D, 0x038D, 0x038D),
            new ObUnicaseInfoChar(0x038E, 0x03CD, 0x03A5),
            new ObUnicaseInfoChar(0x038F, 0x03CE, 0x03A9),
            new ObUnicaseInfoChar(0x0390, 0x0390, 0x0399),
            new ObUnicaseInfoChar(0x0391, 0x03B1, 0x0391),
            new ObUnicaseInfoChar(0x0392, 0x03B2, 0x0392),
            new ObUnicaseInfoChar(0x0393, 0x03B3, 0x0393),
            new ObUnicaseInfoChar(0x0394, 0x03B4, 0x0394),
            new ObUnicaseInfoChar(0x0395, 0x03B5, 0x0395),
            new ObUnicaseInfoChar(0x0396, 0x03B6, 0x0396),
            new ObUnicaseInfoChar(0x0397, 0x03B7, 0x0397),
            new ObUnicaseInfoChar(0x0398, 0x03B8, 0x0398),
            new ObUnicaseInfoChar(0x0399, 0x03B9, 0x0399),
            new ObUnicaseInfoChar(0x039A, 0x03BA, 0x039A),
            new ObUnicaseInfoChar(0x039B, 0x03BB, 0x039B),
            new ObUnicaseInfoChar(0x039C, 0x03BC, 0x039C),
            new ObUnicaseInfoChar(0x039D, 0x03BD, 0x039D),
            new ObUnicaseInfoChar(0x039E, 0x03BE, 0x039E),
            new ObUnicaseInfoChar(0x039F, 0x03BF, 0x039F),
            new ObUnicaseInfoChar(0x03A0, 0x03C0, 0x03A0),
            new ObUnicaseInfoChar(0x03A1, 0x03C1, 0x03A1),
            new ObUnicaseInfoChar(0x03A2, 0x03A2, 0x03A2),
            new ObUnicaseInfoChar(0x03A3, 0x03C3, 0x03A3),
            new ObUnicaseInfoChar(0x03A4, 0x03C4, 0x03A4),
            new ObUnicaseInfoChar(0x03A5, 0x03C5, 0x03A5),
            new ObUnicaseInfoChar(0x03A6, 0x03C6, 0x03A6),
            new ObUnicaseInfoChar(0x03A7, 0x03C7, 0x03A7),
            new ObUnicaseInfoChar(0x03A8, 0x03C8, 0x03A8),
            new ObUnicaseInfoChar(0x03A9, 0x03C9, 0x03A9),
            new ObUnicaseInfoChar(0x03AA, 0x03CA, 0x0399),
            new ObUnicaseInfoChar(0x03AB, 0x03CB, 0x03A5),
            new ObUnicaseInfoChar(0x0386, 0x03AC, 0x0391),
            new ObUnicaseInfoChar(0x0388, 0x03AD, 0x0395),
            new ObUnicaseInfoChar(0x0389, 0x03AE, 0x0397),
            new ObUnicaseInfoChar(0x038A, 0x03AF, 0x0399),
            new ObUnicaseInfoChar(0x03B0, 0x03B0, 0x03A5),
            new ObUnicaseInfoChar(0x0391, 0x03B1, 0x0391),
            new ObUnicaseInfoChar(0x0392, 0x03B2, 0x0392),
            new ObUnicaseInfoChar(0x0393, 0x03B3, 0x0393),
            new ObUnicaseInfoChar(0x0394, 0x03B4, 0x0394),
            new ObUnicaseInfoChar(0x0395, 0x03B5, 0x0395),
            new ObUnicaseInfoChar(0x0396, 0x03B6, 0x0396),
            new ObUnicaseInfoChar(0x0397, 0x03B7, 0x0397),
            new ObUnicaseInfoChar(0x0398, 0x03B8, 0x0398),
            new ObUnicaseInfoChar(0x0399, 0x03B9, 0x0399),
            new ObUnicaseInfoChar(0x039A, 0x03BA, 0x039A),
            new ObUnicaseInfoChar(0x039B, 0x03BB, 0x039B),
            new ObUnicaseInfoChar(0x039C, 0x03BC, 0x039C),
            new ObUnicaseInfoChar(0x039D, 0x03BD, 0x039D),
            new ObUnicaseInfoChar(0x039E, 0x03BE, 0x039E),
            new ObUnicaseInfoChar(0x039F, 0x03BF, 0x039F),
            new ObUnicaseInfoChar(0x03A0, 0x03C0, 0x03A0),
            new ObUnicaseInfoChar(0x03A1, 0x03C1, 0x03A1),
            new ObUnicaseInfoChar(0x03A3, 0x03C2, 0x03A3),
            new ObUnicaseInfoChar(0x03A3, 0x03C3, 0x03A3),
            new ObUnicaseInfoChar(0x03A4, 0x03C4, 0x03A4),
            new ObUnicaseInfoChar(0x03A5, 0x03C5, 0x03A5),
            new ObUnicaseInfoChar(0x03A6, 0x03C6, 0x03A6),
            new ObUnicaseInfoChar(0x03A7, 0x03C7, 0x03A7),
            new ObUnicaseInfoChar(0x03A8, 0x03C8, 0x03A8),
            new ObUnicaseInfoChar(0x03A9, 0x03C9, 0x03A9),
            new ObUnicaseInfoChar(0x03AA, 0x03CA, 0x0399),
            new ObUnicaseInfoChar(0x03AB, 0x03CB, 0x03A5),
            new ObUnicaseInfoChar(0x038C, 0x03CC, 0x039F),
            new ObUnicaseInfoChar(0x038E, 0x03CD, 0x03A5),
            new ObUnicaseInfoChar(0x038F, 0x03CE, 0x03A9),
            new ObUnicaseInfoChar(0x03CF, 0x03CF, 0x03CF),
            new ObUnicaseInfoChar(0x0392, 0x03D0, 0x0392),
            new ObUnicaseInfoChar(0x0398, 0x03D1, 0x0398),
            new ObUnicaseInfoChar(0x03D2, 0x03D2, 0x03D2),
            new ObUnicaseInfoChar(0x03D3, 0x03D3, 0x03D2),
            new ObUnicaseInfoChar(0x03D4, 0x03D4, 0x03D2),
            new ObUnicaseInfoChar(0x03A6, 0x03D5, 0x03A6),
            new ObUnicaseInfoChar(0x03A0, 0x03D6, 0x03A0),
            new ObUnicaseInfoChar(0x03D7, 0x03D7, 0x03D7),
            new ObUnicaseInfoChar(0x03D8, 0x03D8, 0x03D8),
            new ObUnicaseInfoChar(0x03D9, 0x03D9, 0x03D9),
            new ObUnicaseInfoChar(0x03DA, 0x03DB, 0x03DA),
            new ObUnicaseInfoChar(0x03DA, 0x03DB, 0x03DA),
            new ObUnicaseInfoChar(0x03DC, 0x03DD, 0x03DC),
            new ObUnicaseInfoChar(0x03DC, 0x03DD, 0x03DC),
            new ObUnicaseInfoChar(0x03DE, 0x03DF, 0x03DE),
            new ObUnicaseInfoChar(0x03DE, 0x03DF, 0x03DE),
            new ObUnicaseInfoChar(0x03E0, 0x03E1, 0x03E0),
            new ObUnicaseInfoChar(0x03E0, 0x03E1, 0x03E0),
            new ObUnicaseInfoChar(0x03E2, 0x03E3, 0x03E2),
            new ObUnicaseInfoChar(0x03E2, 0x03E3, 0x03E2),
            new ObUnicaseInfoChar(0x03E4, 0x03E5, 0x03E4),
            new ObUnicaseInfoChar(0x03E4, 0x03E5, 0x03E4),
            new ObUnicaseInfoChar(0x03E6, 0x03E7, 0x03E6),
            new ObUnicaseInfoChar(0x03E6, 0x03E7, 0x03E6),
            new ObUnicaseInfoChar(0x03E8, 0x03E9, 0x03E8),
            new ObUnicaseInfoChar(0x03E8, 0x03E9, 0x03E8),
            new ObUnicaseInfoChar(0x03EA, 0x03EB, 0x03EA),
            new ObUnicaseInfoChar(0x03EA, 0x03EB, 0x03EA),
            new ObUnicaseInfoChar(0x03EC, 0x03ED, 0x03EC),
            new ObUnicaseInfoChar(0x03EC, 0x03ED, 0x03EC),
            new ObUnicaseInfoChar(0x03EE, 0x03EF, 0x03EE),
            new ObUnicaseInfoChar(0x03EE, 0x03EF, 0x03EE),
            new ObUnicaseInfoChar(0x039A, 0x03F0, 0x039A),
            new ObUnicaseInfoChar(0x03A1, 0x03F1, 0x03A1),
            new ObUnicaseInfoChar(0x03A3, 0x03F2, 0x03A3),
            new ObUnicaseInfoChar(0x03F3, 0x03F3, 0x03F3),
            new ObUnicaseInfoChar(0x03F4, 0x03F4, 0x03F4),
            new ObUnicaseInfoChar(0x03F5, 0x03F5, 0x03F5),
            new ObUnicaseInfoChar(0x03F6, 0x03F6, 0x03F6),
            new ObUnicaseInfoChar(0x03F7, 0x03F7, 0x03F7),
            new ObUnicaseInfoChar(0x03F8, 0x03F8, 0x03F8),
            new ObUnicaseInfoChar(0x03F9, 0x03F9, 0x03F9),
            new ObUnicaseInfoChar(0x03FA, 0x03FA, 0x03FA),
            new ObUnicaseInfoChar(0x03FB, 0x03FB, 0x03FB),
            new ObUnicaseInfoChar(0x03FC, 0x03FC, 0x03FC),
            new ObUnicaseInfoChar(0x03FD, 0x03FD, 0x03FD),
            new ObUnicaseInfoChar(0x03FE, 0x03FE, 0x03FE),
            new ObUnicaseInfoChar(0x03FF, 0x03FF, 0x03FF)          };

    public static ObUnicaseInfoChar[]   plane04                     = {
            new ObUnicaseInfoChar(0x0400, 0x0450, 0x0415),
            new ObUnicaseInfoChar(0x0401, 0x0451, 0x0415),
            new ObUnicaseInfoChar(0x0402, 0x0452, 0x0402),
            new ObUnicaseInfoChar(0x0403, 0x0453, 0x0413),
            new ObUnicaseInfoChar(0x0404, 0x0454, 0x0404),
            new ObUnicaseInfoChar(0x0405, 0x0455, 0x0405),
            new ObUnicaseInfoChar(0x0406, 0x0456, 0x0406),
            new ObUnicaseInfoChar(0x0407, 0x0457, 0x0406),
            new ObUnicaseInfoChar(0x0408, 0x0458, 0x0408),
            new ObUnicaseInfoChar(0x0409, 0x0459, 0x0409),
            new ObUnicaseInfoChar(0x040A, 0x045A, 0x040A),
            new ObUnicaseInfoChar(0x040B, 0x045B, 0x040B),
            new ObUnicaseInfoChar(0x040C, 0x045C, 0x041A),
            new ObUnicaseInfoChar(0x040D, 0x045D, 0x0418),
            new ObUnicaseInfoChar(0x040E, 0x045E, 0x0423),
            new ObUnicaseInfoChar(0x040F, 0x045F, 0x040F),
            new ObUnicaseInfoChar(0x0410, 0x0430, 0x0410),
            new ObUnicaseInfoChar(0x0411, 0x0431, 0x0411),
            new ObUnicaseInfoChar(0x0412, 0x0432, 0x0412),
            new ObUnicaseInfoChar(0x0413, 0x0433, 0x0413),
            new ObUnicaseInfoChar(0x0414, 0x0434, 0x0414),
            new ObUnicaseInfoChar(0x0415, 0x0435, 0x0415),
            new ObUnicaseInfoChar(0x0416, 0x0436, 0x0416),
            new ObUnicaseInfoChar(0x0417, 0x0437, 0x0417),
            new ObUnicaseInfoChar(0x0418, 0x0438, 0x0418),
            new ObUnicaseInfoChar(0x0419, 0x0439, 0x0419),
            new ObUnicaseInfoChar(0x041A, 0x043A, 0x041A),
            new ObUnicaseInfoChar(0x041B, 0x043B, 0x041B),
            new ObUnicaseInfoChar(0x041C, 0x043C, 0x041C),
            new ObUnicaseInfoChar(0x041D, 0x043D, 0x041D),
            new ObUnicaseInfoChar(0x041E, 0x043E, 0x041E),
            new ObUnicaseInfoChar(0x041F, 0x043F, 0x041F),
            new ObUnicaseInfoChar(0x0420, 0x0440, 0x0420),
            new ObUnicaseInfoChar(0x0421, 0x0441, 0x0421),
            new ObUnicaseInfoChar(0x0422, 0x0442, 0x0422),
            new ObUnicaseInfoChar(0x0423, 0x0443, 0x0423),
            new ObUnicaseInfoChar(0x0424, 0x0444, 0x0424),
            new ObUnicaseInfoChar(0x0425, 0x0445, 0x0425),
            new ObUnicaseInfoChar(0x0426, 0x0446, 0x0426),
            new ObUnicaseInfoChar(0x0427, 0x0447, 0x0427),
            new ObUnicaseInfoChar(0x0428, 0x0448, 0x0428),
            new ObUnicaseInfoChar(0x0429, 0x0449, 0x0429),
            new ObUnicaseInfoChar(0x042A, 0x044A, 0x042A),
            new ObUnicaseInfoChar(0x042B, 0x044B, 0x042B),
            new ObUnicaseInfoChar(0x042C, 0x044C, 0x042C),
            new ObUnicaseInfoChar(0x042D, 0x044D, 0x042D),
            new ObUnicaseInfoChar(0x042E, 0x044E, 0x042E),
            new ObUnicaseInfoChar(0x042F, 0x044F, 0x042F),
            new ObUnicaseInfoChar(0x0410, 0x0430, 0x0410),
            new ObUnicaseInfoChar(0x0411, 0x0431, 0x0411),
            new ObUnicaseInfoChar(0x0412, 0x0432, 0x0412),
            new ObUnicaseInfoChar(0x0413, 0x0433, 0x0413),
            new ObUnicaseInfoChar(0x0414, 0x0434, 0x0414),
            new ObUnicaseInfoChar(0x0415, 0x0435, 0x0415),
            new ObUnicaseInfoChar(0x0416, 0x0436, 0x0416),
            new ObUnicaseInfoChar(0x0417, 0x0437, 0x0417),
            new ObUnicaseInfoChar(0x0418, 0x0438, 0x0418),
            new ObUnicaseInfoChar(0x0419, 0x0439, 0x0419),
            new ObUnicaseInfoChar(0x041A, 0x043A, 0x041A),
            new ObUnicaseInfoChar(0x041B, 0x043B, 0x041B),
            new ObUnicaseInfoChar(0x041C, 0x043C, 0x041C),
            new ObUnicaseInfoChar(0x041D, 0x043D, 0x041D),
            new ObUnicaseInfoChar(0x041E, 0x043E, 0x041E),
            new ObUnicaseInfoChar(0x041F, 0x043F, 0x041F),
            new ObUnicaseInfoChar(0x0420, 0x0440, 0x0420),
            new ObUnicaseInfoChar(0x0421, 0x0441, 0x0421),
            new ObUnicaseInfoChar(0x0422, 0x0442, 0x0422),
            new ObUnicaseInfoChar(0x0423, 0x0443, 0x0423),
            new ObUnicaseInfoChar(0x0424, 0x0444, 0x0424),
            new ObUnicaseInfoChar(0x0425, 0x0445, 0x0425),
            new ObUnicaseInfoChar(0x0426, 0x0446, 0x0426),
            new ObUnicaseInfoChar(0x0427, 0x0447, 0x0427),
            new ObUnicaseInfoChar(0x0428, 0x0448, 0x0428),
            new ObUnicaseInfoChar(0x0429, 0x0449, 0x0429),
            new ObUnicaseInfoChar(0x042A, 0x044A, 0x042A),
            new ObUnicaseInfoChar(0x042B, 0x044B, 0x042B),
            new ObUnicaseInfoChar(0x042C, 0x044C, 0x042C),
            new ObUnicaseInfoChar(0x042D, 0x044D, 0x042D),
            new ObUnicaseInfoChar(0x042E, 0x044E, 0x042E),
            new ObUnicaseInfoChar(0x042F, 0x044F, 0x042F),
            new ObUnicaseInfoChar(0x0400, 0x0450, 0x0415),
            new ObUnicaseInfoChar(0x0401, 0x0451, 0x0415),
            new ObUnicaseInfoChar(0x0402, 0x0452, 0x0402),
            new ObUnicaseInfoChar(0x0403, 0x0453, 0x0413),
            new ObUnicaseInfoChar(0x0404, 0x0454, 0x0404),
            new ObUnicaseInfoChar(0x0405, 0x0455, 0x0405),
            new ObUnicaseInfoChar(0x0406, 0x0456, 0x0406),
            new ObUnicaseInfoChar(0x0407, 0x0457, 0x0406),
            new ObUnicaseInfoChar(0x0408, 0x0458, 0x0408),
            new ObUnicaseInfoChar(0x0409, 0x0459, 0x0409),
            new ObUnicaseInfoChar(0x040A, 0x045A, 0x040A),
            new ObUnicaseInfoChar(0x040B, 0x045B, 0x040B),
            new ObUnicaseInfoChar(0x040C, 0x045C, 0x041A),
            new ObUnicaseInfoChar(0x040D, 0x045D, 0x0418),
            new ObUnicaseInfoChar(0x040E, 0x045E, 0x0423),
            new ObUnicaseInfoChar(0x040F, 0x045F, 0x040F),
            new ObUnicaseInfoChar(0x0460, 0x0461, 0x0460),
            new ObUnicaseInfoChar(0x0460, 0x0461, 0x0460),
            new ObUnicaseInfoChar(0x0462, 0x0463, 0x0462),
            new ObUnicaseInfoChar(0x0462, 0x0463, 0x0462),
            new ObUnicaseInfoChar(0x0464, 0x0465, 0x0464),
            new ObUnicaseInfoChar(0x0464, 0x0465, 0x0464),
            new ObUnicaseInfoChar(0x0466, 0x0467, 0x0466),
            new ObUnicaseInfoChar(0x0466, 0x0467, 0x0466),
            new ObUnicaseInfoChar(0x0468, 0x0469, 0x0468),
            new ObUnicaseInfoChar(0x0468, 0x0469, 0x0468),
            new ObUnicaseInfoChar(0x046A, 0x046B, 0x046A),
            new ObUnicaseInfoChar(0x046A, 0x046B, 0x046A),
            new ObUnicaseInfoChar(0x046C, 0x046D, 0x046C),
            new ObUnicaseInfoChar(0x046C, 0x046D, 0x046C),
            new ObUnicaseInfoChar(0x046E, 0x046F, 0x046E),
            new ObUnicaseInfoChar(0x046E, 0x046F, 0x046E),
            new ObUnicaseInfoChar(0x0470, 0x0471, 0x0470),
            new ObUnicaseInfoChar(0x0470, 0x0471, 0x0470),
            new ObUnicaseInfoChar(0x0472, 0x0473, 0x0472),
            new ObUnicaseInfoChar(0x0472, 0x0473, 0x0472),
            new ObUnicaseInfoChar(0x0474, 0x0475, 0x0474),
            new ObUnicaseInfoChar(0x0474, 0x0475, 0x0474),
            new ObUnicaseInfoChar(0x0476, 0x0477, 0x0474),
            new ObUnicaseInfoChar(0x0476, 0x0477, 0x0474),
            new ObUnicaseInfoChar(0x0478, 0x0479, 0x0478),
            new ObUnicaseInfoChar(0x0478, 0x0479, 0x0478),
            new ObUnicaseInfoChar(0x047A, 0x047B, 0x047A),
            new ObUnicaseInfoChar(0x047A, 0x047B, 0x047A),
            new ObUnicaseInfoChar(0x047C, 0x047D, 0x047C),
            new ObUnicaseInfoChar(0x047C, 0x047D, 0x047C),
            new ObUnicaseInfoChar(0x047E, 0x047F, 0x047E),
            new ObUnicaseInfoChar(0x047E, 0x047F, 0x047E),
            new ObUnicaseInfoChar(0x0480, 0x0481, 0x0480),
            new ObUnicaseInfoChar(0x0480, 0x0481, 0x0480),
            new ObUnicaseInfoChar(0x0482, 0x0482, 0x0482),
            new ObUnicaseInfoChar(0x0483, 0x0483, 0x0483),
            new ObUnicaseInfoChar(0x0484, 0x0484, 0x0484),
            new ObUnicaseInfoChar(0x0485, 0x0485, 0x0485),
            new ObUnicaseInfoChar(0x0486, 0x0486, 0x0486),
            new ObUnicaseInfoChar(0x0487, 0x0487, 0x0487),
            new ObUnicaseInfoChar(0x0488, 0x0488, 0x0488),
            new ObUnicaseInfoChar(0x0489, 0x0489, 0x0489),
            new ObUnicaseInfoChar(0x048A, 0x048A, 0x048A),
            new ObUnicaseInfoChar(0x048B, 0x048B, 0x048B),
            new ObUnicaseInfoChar(0x048C, 0x048D, 0x048C),
            new ObUnicaseInfoChar(0x048C, 0x048D, 0x048C),
            new ObUnicaseInfoChar(0x048E, 0x048F, 0x048E),
            new ObUnicaseInfoChar(0x048E, 0x048F, 0x048E),
            new ObUnicaseInfoChar(0x0490, 0x0491, 0x0490),
            new ObUnicaseInfoChar(0x0490, 0x0491, 0x0490),
            new ObUnicaseInfoChar(0x0492, 0x0493, 0x0492),
            new ObUnicaseInfoChar(0x0492, 0x0493, 0x0492),
            new ObUnicaseInfoChar(0x0494, 0x0495, 0x0494),
            new ObUnicaseInfoChar(0x0494, 0x0495, 0x0494),
            new ObUnicaseInfoChar(0x0496, 0x0497, 0x0496),
            new ObUnicaseInfoChar(0x0496, 0x0497, 0x0496),
            new ObUnicaseInfoChar(0x0498, 0x0499, 0x0498),
            new ObUnicaseInfoChar(0x0498, 0x0499, 0x0498),
            new ObUnicaseInfoChar(0x049A, 0x049B, 0x049A),
            new ObUnicaseInfoChar(0x049A, 0x049B, 0x049A),
            new ObUnicaseInfoChar(0x049C, 0x049D, 0x049C),
            new ObUnicaseInfoChar(0x049C, 0x049D, 0x049C),
            new ObUnicaseInfoChar(0x049E, 0x049F, 0x049E),
            new ObUnicaseInfoChar(0x049E, 0x049F, 0x049E),
            new ObUnicaseInfoChar(0x04A0, 0x04A1, 0x04A0),
            new ObUnicaseInfoChar(0x04A0, 0x04A1, 0x04A0),
            new ObUnicaseInfoChar(0x04A2, 0x04A3, 0x04A2),
            new ObUnicaseInfoChar(0x04A2, 0x04A3, 0x04A2),
            new ObUnicaseInfoChar(0x04A4, 0x04A5, 0x04A4),
            new ObUnicaseInfoChar(0x04A4, 0x04A5, 0x04A4),
            new ObUnicaseInfoChar(0x04A6, 0x04A7, 0x04A6),
            new ObUnicaseInfoChar(0x04A6, 0x04A7, 0x04A6),
            new ObUnicaseInfoChar(0x04A8, 0x04A9, 0x04A8),
            new ObUnicaseInfoChar(0x04A8, 0x04A9, 0x04A8),
            new ObUnicaseInfoChar(0x04AA, 0x04AB, 0x04AA),
            new ObUnicaseInfoChar(0x04AA, 0x04AB, 0x04AA),
            new ObUnicaseInfoChar(0x04AC, 0x04AD, 0x04AC),
            new ObUnicaseInfoChar(0x04AC, 0x04AD, 0x04AC),
            new ObUnicaseInfoChar(0x04AE, 0x04AF, 0x04AE),
            new ObUnicaseInfoChar(0x04AE, 0x04AF, 0x04AE),
            new ObUnicaseInfoChar(0x04B0, 0x04B1, 0x04B0),
            new ObUnicaseInfoChar(0x04B0, 0x04B1, 0x04B0),
            new ObUnicaseInfoChar(0x04B2, 0x04B3, 0x04B2),
            new ObUnicaseInfoChar(0x04B2, 0x04B3, 0x04B2),
            new ObUnicaseInfoChar(0x04B4, 0x04B5, 0x04B4),
            new ObUnicaseInfoChar(0x04B4, 0x04B5, 0x04B4),
            new ObUnicaseInfoChar(0x04B6, 0x04B7, 0x04B6),
            new ObUnicaseInfoChar(0x04B6, 0x04B7, 0x04B6),
            new ObUnicaseInfoChar(0x04B8, 0x04B9, 0x04B8),
            new ObUnicaseInfoChar(0x04B8, 0x04B9, 0x04B8),
            new ObUnicaseInfoChar(0x04BA, 0x04BB, 0x04BA),
            new ObUnicaseInfoChar(0x04BA, 0x04BB, 0x04BA),
            new ObUnicaseInfoChar(0x04BC, 0x04BD, 0x04BC),
            new ObUnicaseInfoChar(0x04BC, 0x04BD, 0x04BC),
            new ObUnicaseInfoChar(0x04BE, 0x04BF, 0x04BE),
            new ObUnicaseInfoChar(0x04BE, 0x04BF, 0x04BE),
            new ObUnicaseInfoChar(0x04C0, 0x04C0, 0x04C0),
            new ObUnicaseInfoChar(0x04C1, 0x04C2, 0x0416),
            new ObUnicaseInfoChar(0x04C1, 0x04C2, 0x0416),
            new ObUnicaseInfoChar(0x04C3, 0x04C4, 0x04C3),
            new ObUnicaseInfoChar(0x04C3, 0x04C4, 0x04C3),
            new ObUnicaseInfoChar(0x04C5, 0x04C5, 0x04C5),
            new ObUnicaseInfoChar(0x04C6, 0x04C6, 0x04C6),
            new ObUnicaseInfoChar(0x04C7, 0x04C8, 0x04C7),
            new ObUnicaseInfoChar(0x04C7, 0x04C8, 0x04C7),
            new ObUnicaseInfoChar(0x04C9, 0x04C9, 0x04C9),
            new ObUnicaseInfoChar(0x04CA, 0x04CA, 0x04CA),
            new ObUnicaseInfoChar(0x04CB, 0x04CC, 0x04CB),
            new ObUnicaseInfoChar(0x04CB, 0x04CC, 0x04CB),
            new ObUnicaseInfoChar(0x04CD, 0x04CD, 0x04CD),
            new ObUnicaseInfoChar(0x04CE, 0x04CE, 0x04CE),
            new ObUnicaseInfoChar(0x04CF, 0x04CF, 0x04CF),
            new ObUnicaseInfoChar(0x04D0, 0x04D1, 0x0410),
            new ObUnicaseInfoChar(0x04D0, 0x04D1, 0x0410),
            new ObUnicaseInfoChar(0x04D2, 0x04D3, 0x0410),
            new ObUnicaseInfoChar(0x04D2, 0x04D3, 0x0410),
            new ObUnicaseInfoChar(0x04D4, 0x04D5, 0x04D4),
            new ObUnicaseInfoChar(0x04D4, 0x04D5, 0x04D4),
            new ObUnicaseInfoChar(0x04D6, 0x04D7, 0x0415),
            new ObUnicaseInfoChar(0x04D6, 0x04D7, 0x0415),
            new ObUnicaseInfoChar(0x04D8, 0x04D9, 0x04D8),
            new ObUnicaseInfoChar(0x04D8, 0x04D9, 0x04D8),
            new ObUnicaseInfoChar(0x04DA, 0x04DB, 0x04D8),
            new ObUnicaseInfoChar(0x04DA, 0x04DB, 0x04D8),
            new ObUnicaseInfoChar(0x04DC, 0x04DD, 0x0416),
            new ObUnicaseInfoChar(0x04DC, 0x04DD, 0x0416),
            new ObUnicaseInfoChar(0x04DE, 0x04DF, 0x0417),
            new ObUnicaseInfoChar(0x04DE, 0x04DF, 0x0417),
            new ObUnicaseInfoChar(0x04E0, 0x04E1, 0x04E0),
            new ObUnicaseInfoChar(0x04E0, 0x04E1, 0x04E0),
            new ObUnicaseInfoChar(0x04E2, 0x04E3, 0x0418),
            new ObUnicaseInfoChar(0x04E2, 0x04E3, 0x0418),
            new ObUnicaseInfoChar(0x04E4, 0x04E5, 0x0418),
            new ObUnicaseInfoChar(0x04E4, 0x04E5, 0x0418),
            new ObUnicaseInfoChar(0x04E6, 0x04E7, 0x041E),
            new ObUnicaseInfoChar(0x04E6, 0x04E7, 0x041E),
            new ObUnicaseInfoChar(0x04E8, 0x04E9, 0x04E8),
            new ObUnicaseInfoChar(0x04E8, 0x04E9, 0x04E8),
            new ObUnicaseInfoChar(0x04EA, 0x04EB, 0x04E8),
            new ObUnicaseInfoChar(0x04EA, 0x04EB, 0x04E8),
            new ObUnicaseInfoChar(0x04EC, 0x04ED, 0x042D),
            new ObUnicaseInfoChar(0x04EC, 0x04ED, 0x042D),
            new ObUnicaseInfoChar(0x04EE, 0x04EF, 0x0423),
            new ObUnicaseInfoChar(0x04EE, 0x04EF, 0x0423),
            new ObUnicaseInfoChar(0x04F0, 0x04F1, 0x0423),
            new ObUnicaseInfoChar(0x04F0, 0x04F1, 0x0423),
            new ObUnicaseInfoChar(0x04F2, 0x04F3, 0x0423),
            new ObUnicaseInfoChar(0x04F2, 0x04F3, 0x0423),
            new ObUnicaseInfoChar(0x04F4, 0x04F5, 0x0427),
            new ObUnicaseInfoChar(0x04F4, 0x04F5, 0x0427),
            new ObUnicaseInfoChar(0x04F6, 0x04F6, 0x04F6),
            new ObUnicaseInfoChar(0x04F7, 0x04F7, 0x04F7),
            new ObUnicaseInfoChar(0x04F8, 0x04F9, 0x042B),
            new ObUnicaseInfoChar(0x04F8, 0x04F9, 0x042B),
            new ObUnicaseInfoChar(0x04FA, 0x04FA, 0x04FA),
            new ObUnicaseInfoChar(0x04FB, 0x04FB, 0x04FB),
            new ObUnicaseInfoChar(0x04FC, 0x04FC, 0x04FC),
            new ObUnicaseInfoChar(0x04FD, 0x04FD, 0x04FD),
            new ObUnicaseInfoChar(0x04FE, 0x04FE, 0x04FE),
            new ObUnicaseInfoChar(0x04FF, 0x04FF, 0x04FF)          };

    public static ObUnicaseInfoChar[]   plane05                     = {
            new ObUnicaseInfoChar(0x0500, 0x0500, 0x0500),
            new ObUnicaseInfoChar(0x0501, 0x0501, 0x0501),
            new ObUnicaseInfoChar(0x0502, 0x0502, 0x0502),
            new ObUnicaseInfoChar(0x0503, 0x0503, 0x0503),
            new ObUnicaseInfoChar(0x0504, 0x0504, 0x0504),
            new ObUnicaseInfoChar(0x0505, 0x0505, 0x0505),
            new ObUnicaseInfoChar(0x0506, 0x0506, 0x0506),
            new ObUnicaseInfoChar(0x0507, 0x0507, 0x0507),
            new ObUnicaseInfoChar(0x0508, 0x0508, 0x0508),
            new ObUnicaseInfoChar(0x0509, 0x0509, 0x0509),
            new ObUnicaseInfoChar(0x050A, 0x050A, 0x050A),
            new ObUnicaseInfoChar(0x050B, 0x050B, 0x050B),
            new ObUnicaseInfoChar(0x050C, 0x050C, 0x050C),
            new ObUnicaseInfoChar(0x050D, 0x050D, 0x050D),
            new ObUnicaseInfoChar(0x050E, 0x050E, 0x050E),
            new ObUnicaseInfoChar(0x050F, 0x050F, 0x050F),
            new ObUnicaseInfoChar(0x0510, 0x0510, 0x0510),
            new ObUnicaseInfoChar(0x0511, 0x0511, 0x0511),
            new ObUnicaseInfoChar(0x0512, 0x0512, 0x0512),
            new ObUnicaseInfoChar(0x0513, 0x0513, 0x0513),
            new ObUnicaseInfoChar(0x0514, 0x0514, 0x0514),
            new ObUnicaseInfoChar(0x0515, 0x0515, 0x0515),
            new ObUnicaseInfoChar(0x0516, 0x0516, 0x0516),
            new ObUnicaseInfoChar(0x0517, 0x0517, 0x0517),
            new ObUnicaseInfoChar(0x0518, 0x0518, 0x0518),
            new ObUnicaseInfoChar(0x0519, 0x0519, 0x0519),
            new ObUnicaseInfoChar(0x051A, 0x051A, 0x051A),
            new ObUnicaseInfoChar(0x051B, 0x051B, 0x051B),
            new ObUnicaseInfoChar(0x051C, 0x051C, 0x051C),
            new ObUnicaseInfoChar(0x051D, 0x051D, 0x051D),
            new ObUnicaseInfoChar(0x051E, 0x051E, 0x051E),
            new ObUnicaseInfoChar(0x051F, 0x051F, 0x051F),
            new ObUnicaseInfoChar(0x0520, 0x0520, 0x0520),
            new ObUnicaseInfoChar(0x0521, 0x0521, 0x0521),
            new ObUnicaseInfoChar(0x0522, 0x0522, 0x0522),
            new ObUnicaseInfoChar(0x0523, 0x0523, 0x0523),
            new ObUnicaseInfoChar(0x0524, 0x0524, 0x0524),
            new ObUnicaseInfoChar(0x0525, 0x0525, 0x0525),
            new ObUnicaseInfoChar(0x0526, 0x0526, 0x0526),
            new ObUnicaseInfoChar(0x0527, 0x0527, 0x0527),
            new ObUnicaseInfoChar(0x0528, 0x0528, 0x0528),
            new ObUnicaseInfoChar(0x0529, 0x0529, 0x0529),
            new ObUnicaseInfoChar(0x052A, 0x052A, 0x052A),
            new ObUnicaseInfoChar(0x052B, 0x052B, 0x052B),
            new ObUnicaseInfoChar(0x052C, 0x052C, 0x052C),
            new ObUnicaseInfoChar(0x052D, 0x052D, 0x052D),
            new ObUnicaseInfoChar(0x052E, 0x052E, 0x052E),
            new ObUnicaseInfoChar(0x052F, 0x052F, 0x052F),
            new ObUnicaseInfoChar(0x0530, 0x0530, 0x0530),
            new ObUnicaseInfoChar(0x0531, 0x0561, 0x0531),
            new ObUnicaseInfoChar(0x0532, 0x0562, 0x0532),
            new ObUnicaseInfoChar(0x0533, 0x0563, 0x0533),
            new ObUnicaseInfoChar(0x0534, 0x0564, 0x0534),
            new ObUnicaseInfoChar(0x0535, 0x0565, 0x0535),
            new ObUnicaseInfoChar(0x0536, 0x0566, 0x0536),
            new ObUnicaseInfoChar(0x0537, 0x0567, 0x0537),
            new ObUnicaseInfoChar(0x0538, 0x0568, 0x0538),
            new ObUnicaseInfoChar(0x0539, 0x0569, 0x0539),
            new ObUnicaseInfoChar(0x053A, 0x056A, 0x053A),
            new ObUnicaseInfoChar(0x053B, 0x056B, 0x053B),
            new ObUnicaseInfoChar(0x053C, 0x056C, 0x053C),
            new ObUnicaseInfoChar(0x053D, 0x056D, 0x053D),
            new ObUnicaseInfoChar(0x053E, 0x056E, 0x053E),
            new ObUnicaseInfoChar(0x053F, 0x056F, 0x053F),
            new ObUnicaseInfoChar(0x0540, 0x0570, 0x0540),
            new ObUnicaseInfoChar(0x0541, 0x0571, 0x0541),
            new ObUnicaseInfoChar(0x0542, 0x0572, 0x0542),
            new ObUnicaseInfoChar(0x0543, 0x0573, 0x0543),
            new ObUnicaseInfoChar(0x0544, 0x0574, 0x0544),
            new ObUnicaseInfoChar(0x0545, 0x0575, 0x0545),
            new ObUnicaseInfoChar(0x0546, 0x0576, 0x0546),
            new ObUnicaseInfoChar(0x0547, 0x0577, 0x0547),
            new ObUnicaseInfoChar(0x0548, 0x0578, 0x0548),
            new ObUnicaseInfoChar(0x0549, 0x0579, 0x0549),
            new ObUnicaseInfoChar(0x054A, 0x057A, 0x054A),
            new ObUnicaseInfoChar(0x054B, 0x057B, 0x054B),
            new ObUnicaseInfoChar(0x054C, 0x057C, 0x054C),
            new ObUnicaseInfoChar(0x054D, 0x057D, 0x054D),
            new ObUnicaseInfoChar(0x054E, 0x057E, 0x054E),
            new ObUnicaseInfoChar(0x054F, 0x057F, 0x054F),
            new ObUnicaseInfoChar(0x0550, 0x0580, 0x0550),
            new ObUnicaseInfoChar(0x0551, 0x0581, 0x0551),
            new ObUnicaseInfoChar(0x0552, 0x0582, 0x0552),
            new ObUnicaseInfoChar(0x0553, 0x0583, 0x0553),
            new ObUnicaseInfoChar(0x0554, 0x0584, 0x0554),
            new ObUnicaseInfoChar(0x0555, 0x0585, 0x0555),
            new ObUnicaseInfoChar(0x0556, 0x0586, 0x0556),
            new ObUnicaseInfoChar(0x0557, 0x0557, 0x0557),
            new ObUnicaseInfoChar(0x0558, 0x0558, 0x0558),
            new ObUnicaseInfoChar(0x0559, 0x0559, 0x0559),
            new ObUnicaseInfoChar(0x055A, 0x055A, 0x055A),
            new ObUnicaseInfoChar(0x055B, 0x055B, 0x055B),
            new ObUnicaseInfoChar(0x055C, 0x055C, 0x055C),
            new ObUnicaseInfoChar(0x055D, 0x055D, 0x055D),
            new ObUnicaseInfoChar(0x055E, 0x055E, 0x055E),
            new ObUnicaseInfoChar(0x055F, 0x055F, 0x055F),
            new ObUnicaseInfoChar(0x0560, 0x0560, 0x0560),
            new ObUnicaseInfoChar(0x0531, 0x0561, 0x0531),
            new ObUnicaseInfoChar(0x0532, 0x0562, 0x0532),
            new ObUnicaseInfoChar(0x0533, 0x0563, 0x0533),
            new ObUnicaseInfoChar(0x0534, 0x0564, 0x0534),
            new ObUnicaseInfoChar(0x0535, 0x0565, 0x0535),
            new ObUnicaseInfoChar(0x0536, 0x0566, 0x0536),
            new ObUnicaseInfoChar(0x0537, 0x0567, 0x0537),
            new ObUnicaseInfoChar(0x0538, 0x0568, 0x0538),
            new ObUnicaseInfoChar(0x0539, 0x0569, 0x0539),
            new ObUnicaseInfoChar(0x053A, 0x056A, 0x053A),
            new ObUnicaseInfoChar(0x053B, 0x056B, 0x053B),
            new ObUnicaseInfoChar(0x053C, 0x056C, 0x053C),
            new ObUnicaseInfoChar(0x053D, 0x056D, 0x053D),
            new ObUnicaseInfoChar(0x053E, 0x056E, 0x053E),
            new ObUnicaseInfoChar(0x053F, 0x056F, 0x053F),
            new ObUnicaseInfoChar(0x0540, 0x0570, 0x0540),
            new ObUnicaseInfoChar(0x0541, 0x0571, 0x0541),
            new ObUnicaseInfoChar(0x0542, 0x0572, 0x0542),
            new ObUnicaseInfoChar(0x0543, 0x0573, 0x0543),
            new ObUnicaseInfoChar(0x0544, 0x0574, 0x0544),
            new ObUnicaseInfoChar(0x0545, 0x0575, 0x0545),
            new ObUnicaseInfoChar(0x0546, 0x0576, 0x0546),
            new ObUnicaseInfoChar(0x0547, 0x0577, 0x0547),
            new ObUnicaseInfoChar(0x0548, 0x0578, 0x0548),
            new ObUnicaseInfoChar(0x0549, 0x0579, 0x0549),
            new ObUnicaseInfoChar(0x054A, 0x057A, 0x054A),
            new ObUnicaseInfoChar(0x054B, 0x057B, 0x054B),
            new ObUnicaseInfoChar(0x054C, 0x057C, 0x054C),
            new ObUnicaseInfoChar(0x054D, 0x057D, 0x054D),
            new ObUnicaseInfoChar(0x054E, 0x057E, 0x054E),
            new ObUnicaseInfoChar(0x054F, 0x057F, 0x054F),
            new ObUnicaseInfoChar(0x0550, 0x0580, 0x0550),
            new ObUnicaseInfoChar(0x0551, 0x0581, 0x0551),
            new ObUnicaseInfoChar(0x0552, 0x0582, 0x0552),
            new ObUnicaseInfoChar(0x0553, 0x0583, 0x0553),
            new ObUnicaseInfoChar(0x0554, 0x0584, 0x0554),
            new ObUnicaseInfoChar(0x0555, 0x0585, 0x0555),
            new ObUnicaseInfoChar(0x0556, 0x0586, 0x0556),
            new ObUnicaseInfoChar(0x0587, 0x0587, 0x0587),
            new ObUnicaseInfoChar(0x0588, 0x0588, 0x0588),
            new ObUnicaseInfoChar(0x0589, 0x0589, 0x0589),
            new ObUnicaseInfoChar(0x058A, 0x058A, 0x058A),
            new ObUnicaseInfoChar(0x058B, 0x058B, 0x058B),
            new ObUnicaseInfoChar(0x058C, 0x058C, 0x058C),
            new ObUnicaseInfoChar(0x058D, 0x058D, 0x058D),
            new ObUnicaseInfoChar(0x058E, 0x058E, 0x058E),
            new ObUnicaseInfoChar(0x058F, 0x058F, 0x058F),
            new ObUnicaseInfoChar(0x0590, 0x0590, 0x0590),
            new ObUnicaseInfoChar(0x0591, 0x0591, 0x0591),
            new ObUnicaseInfoChar(0x0592, 0x0592, 0x0592),
            new ObUnicaseInfoChar(0x0593, 0x0593, 0x0593),
            new ObUnicaseInfoChar(0x0594, 0x0594, 0x0594),
            new ObUnicaseInfoChar(0x0595, 0x0595, 0x0595),
            new ObUnicaseInfoChar(0x0596, 0x0596, 0x0596),
            new ObUnicaseInfoChar(0x0597, 0x0597, 0x0597),
            new ObUnicaseInfoChar(0x0598, 0x0598, 0x0598),
            new ObUnicaseInfoChar(0x0599, 0x0599, 0x0599),
            new ObUnicaseInfoChar(0x059A, 0x059A, 0x059A),
            new ObUnicaseInfoChar(0x059B, 0x059B, 0x059B),
            new ObUnicaseInfoChar(0x059C, 0x059C, 0x059C),
            new ObUnicaseInfoChar(0x059D, 0x059D, 0x059D),
            new ObUnicaseInfoChar(0x059E, 0x059E, 0x059E),
            new ObUnicaseInfoChar(0x059F, 0x059F, 0x059F),
            new ObUnicaseInfoChar(0x05A0, 0x05A0, 0x05A0),
            new ObUnicaseInfoChar(0x05A1, 0x05A1, 0x05A1),
            new ObUnicaseInfoChar(0x05A2, 0x05A2, 0x05A2),
            new ObUnicaseInfoChar(0x05A3, 0x05A3, 0x05A3),
            new ObUnicaseInfoChar(0x05A4, 0x05A4, 0x05A4),
            new ObUnicaseInfoChar(0x05A5, 0x05A5, 0x05A5),
            new ObUnicaseInfoChar(0x05A6, 0x05A6, 0x05A6),
            new ObUnicaseInfoChar(0x05A7, 0x05A7, 0x05A7),
            new ObUnicaseInfoChar(0x05A8, 0x05A8, 0x05A8),
            new ObUnicaseInfoChar(0x05A9, 0x05A9, 0x05A9),
            new ObUnicaseInfoChar(0x05AA, 0x05AA, 0x05AA),
            new ObUnicaseInfoChar(0x05AB, 0x05AB, 0x05AB),
            new ObUnicaseInfoChar(0x05AC, 0x05AC, 0x05AC),
            new ObUnicaseInfoChar(0x05AD, 0x05AD, 0x05AD),
            new ObUnicaseInfoChar(0x05AE, 0x05AE, 0x05AE),
            new ObUnicaseInfoChar(0x05AF, 0x05AF, 0x05AF),
            new ObUnicaseInfoChar(0x05B0, 0x05B0, 0x05B0),
            new ObUnicaseInfoChar(0x05B1, 0x05B1, 0x05B1),
            new ObUnicaseInfoChar(0x05B2, 0x05B2, 0x05B2),
            new ObUnicaseInfoChar(0x05B3, 0x05B3, 0x05B3),
            new ObUnicaseInfoChar(0x05B4, 0x05B4, 0x05B4),
            new ObUnicaseInfoChar(0x05B5, 0x05B5, 0x05B5),
            new ObUnicaseInfoChar(0x05B6, 0x05B6, 0x05B6),
            new ObUnicaseInfoChar(0x05B7, 0x05B7, 0x05B7),
            new ObUnicaseInfoChar(0x05B8, 0x05B8, 0x05B8),
            new ObUnicaseInfoChar(0x05B9, 0x05B9, 0x05B9),
            new ObUnicaseInfoChar(0x05BA, 0x05BA, 0x05BA),
            new ObUnicaseInfoChar(0x05BB, 0x05BB, 0x05BB),
            new ObUnicaseInfoChar(0x05BC, 0x05BC, 0x05BC),
            new ObUnicaseInfoChar(0x05BD, 0x05BD, 0x05BD),
            new ObUnicaseInfoChar(0x05BE, 0x05BE, 0x05BE),
            new ObUnicaseInfoChar(0x05BF, 0x05BF, 0x05BF),
            new ObUnicaseInfoChar(0x05C0, 0x05C0, 0x05C0),
            new ObUnicaseInfoChar(0x05C1, 0x05C1, 0x05C1),
            new ObUnicaseInfoChar(0x05C2, 0x05C2, 0x05C2),
            new ObUnicaseInfoChar(0x05C3, 0x05C3, 0x05C3),
            new ObUnicaseInfoChar(0x05C4, 0x05C4, 0x05C4),
            new ObUnicaseInfoChar(0x05C5, 0x05C5, 0x05C5),
            new ObUnicaseInfoChar(0x05C6, 0x05C6, 0x05C6),
            new ObUnicaseInfoChar(0x05C7, 0x05C7, 0x05C7),
            new ObUnicaseInfoChar(0x05C8, 0x05C8, 0x05C8),
            new ObUnicaseInfoChar(0x05C9, 0x05C9, 0x05C9),
            new ObUnicaseInfoChar(0x05CA, 0x05CA, 0x05CA),
            new ObUnicaseInfoChar(0x05CB, 0x05CB, 0x05CB),
            new ObUnicaseInfoChar(0x05CC, 0x05CC, 0x05CC),
            new ObUnicaseInfoChar(0x05CD, 0x05CD, 0x05CD),
            new ObUnicaseInfoChar(0x05CE, 0x05CE, 0x05CE),
            new ObUnicaseInfoChar(0x05CF, 0x05CF, 0x05CF),
            new ObUnicaseInfoChar(0x05D0, 0x05D0, 0x05D0),
            new ObUnicaseInfoChar(0x05D1, 0x05D1, 0x05D1),
            new ObUnicaseInfoChar(0x05D2, 0x05D2, 0x05D2),
            new ObUnicaseInfoChar(0x05D3, 0x05D3, 0x05D3),
            new ObUnicaseInfoChar(0x05D4, 0x05D4, 0x05D4),
            new ObUnicaseInfoChar(0x05D5, 0x05D5, 0x05D5),
            new ObUnicaseInfoChar(0x05D6, 0x05D6, 0x05D6),
            new ObUnicaseInfoChar(0x05D7, 0x05D7, 0x05D7),
            new ObUnicaseInfoChar(0x05D8, 0x05D8, 0x05D8),
            new ObUnicaseInfoChar(0x05D9, 0x05D9, 0x05D9),
            new ObUnicaseInfoChar(0x05DA, 0x05DA, 0x05DA),
            new ObUnicaseInfoChar(0x05DB, 0x05DB, 0x05DB),
            new ObUnicaseInfoChar(0x05DC, 0x05DC, 0x05DC),
            new ObUnicaseInfoChar(0x05DD, 0x05DD, 0x05DD),
            new ObUnicaseInfoChar(0x05DE, 0x05DE, 0x05DE),
            new ObUnicaseInfoChar(0x05DF, 0x05DF, 0x05DF),
            new ObUnicaseInfoChar(0x05E0, 0x05E0, 0x05E0),
            new ObUnicaseInfoChar(0x05E1, 0x05E1, 0x05E1),
            new ObUnicaseInfoChar(0x05E2, 0x05E2, 0x05E2),
            new ObUnicaseInfoChar(0x05E3, 0x05E3, 0x05E3),
            new ObUnicaseInfoChar(0x05E4, 0x05E4, 0x05E4),
            new ObUnicaseInfoChar(0x05E5, 0x05E5, 0x05E5),
            new ObUnicaseInfoChar(0x05E6, 0x05E6, 0x05E6),
            new ObUnicaseInfoChar(0x05E7, 0x05E7, 0x05E7),
            new ObUnicaseInfoChar(0x05E8, 0x05E8, 0x05E8),
            new ObUnicaseInfoChar(0x05E9, 0x05E9, 0x05E9),
            new ObUnicaseInfoChar(0x05EA, 0x05EA, 0x05EA),
            new ObUnicaseInfoChar(0x05EB, 0x05EB, 0x05EB),
            new ObUnicaseInfoChar(0x05EC, 0x05EC, 0x05EC),
            new ObUnicaseInfoChar(0x05ED, 0x05ED, 0x05ED),
            new ObUnicaseInfoChar(0x05EE, 0x05EE, 0x05EE),
            new ObUnicaseInfoChar(0x05EF, 0x05EF, 0x05EF),
            new ObUnicaseInfoChar(0x05F0, 0x05F0, 0x05F0),
            new ObUnicaseInfoChar(0x05F1, 0x05F1, 0x05F1),
            new ObUnicaseInfoChar(0x05F2, 0x05F2, 0x05F2),
            new ObUnicaseInfoChar(0x05F3, 0x05F3, 0x05F3),
            new ObUnicaseInfoChar(0x05F4, 0x05F4, 0x05F4),
            new ObUnicaseInfoChar(0x05F5, 0x05F5, 0x05F5),
            new ObUnicaseInfoChar(0x05F6, 0x05F6, 0x05F6),
            new ObUnicaseInfoChar(0x05F7, 0x05F7, 0x05F7),
            new ObUnicaseInfoChar(0x05F8, 0x05F8, 0x05F8),
            new ObUnicaseInfoChar(0x05F9, 0x05F9, 0x05F9),
            new ObUnicaseInfoChar(0x05FA, 0x05FA, 0x05FA),
            new ObUnicaseInfoChar(0x05FB, 0x05FB, 0x05FB),
            new ObUnicaseInfoChar(0x05FC, 0x05FC, 0x05FC),
            new ObUnicaseInfoChar(0x05FD, 0x05FD, 0x05FD),
            new ObUnicaseInfoChar(0x05FE, 0x05FE, 0x05FE),
            new ObUnicaseInfoChar(0x05FF, 0x05FF, 0x05FF)          };

    public static ObUnicaseInfoChar[]   plane1E                     = {
            new ObUnicaseInfoChar(0x1E00, 0x1E01, 0x0041),
            new ObUnicaseInfoChar(0x1E00, 0x1E01, 0x0041),
            new ObUnicaseInfoChar(0x1E02, 0x1E03, 0x0042),
            new ObUnicaseInfoChar(0x1E02, 0x1E03, 0x0042),
            new ObUnicaseInfoChar(0x1E04, 0x1E05, 0x0042),
            new ObUnicaseInfoChar(0x1E04, 0x1E05, 0x0042),
            new ObUnicaseInfoChar(0x1E06, 0x1E07, 0x0042),
            new ObUnicaseInfoChar(0x1E06, 0x1E07, 0x0042),
            new ObUnicaseInfoChar(0x1E08, 0x1E09, 0x0043),
            new ObUnicaseInfoChar(0x1E08, 0x1E09, 0x0043),
            new ObUnicaseInfoChar(0x1E0A, 0x1E0B, 0x0044),
            new ObUnicaseInfoChar(0x1E0A, 0x1E0B, 0x0044),
            new ObUnicaseInfoChar(0x1E0C, 0x1E0D, 0x0044),
            new ObUnicaseInfoChar(0x1E0C, 0x1E0D, 0x0044),
            new ObUnicaseInfoChar(0x1E0E, 0x1E0F, 0x0044),
            new ObUnicaseInfoChar(0x1E0E, 0x1E0F, 0x0044),
            new ObUnicaseInfoChar(0x1E10, 0x1E11, 0x0044),
            new ObUnicaseInfoChar(0x1E10, 0x1E11, 0x0044),
            new ObUnicaseInfoChar(0x1E12, 0x1E13, 0x0044),
            new ObUnicaseInfoChar(0x1E12, 0x1E13, 0x0044),
            new ObUnicaseInfoChar(0x1E14, 0x1E15, 0x0045),
            new ObUnicaseInfoChar(0x1E14, 0x1E15, 0x0045),
            new ObUnicaseInfoChar(0x1E16, 0x1E17, 0x0045),
            new ObUnicaseInfoChar(0x1E16, 0x1E17, 0x0045),
            new ObUnicaseInfoChar(0x1E18, 0x1E19, 0x0045),
            new ObUnicaseInfoChar(0x1E18, 0x1E19, 0x0045),
            new ObUnicaseInfoChar(0x1E1A, 0x1E1B, 0x0045),
            new ObUnicaseInfoChar(0x1E1A, 0x1E1B, 0x0045),
            new ObUnicaseInfoChar(0x1E1C, 0x1E1D, 0x0045),
            new ObUnicaseInfoChar(0x1E1C, 0x1E1D, 0x0045),
            new ObUnicaseInfoChar(0x1E1E, 0x1E1F, 0x0046),
            new ObUnicaseInfoChar(0x1E1E, 0x1E1F, 0x0046),
            new ObUnicaseInfoChar(0x1E20, 0x1E21, 0x0047),
            new ObUnicaseInfoChar(0x1E20, 0x1E21, 0x0047),
            new ObUnicaseInfoChar(0x1E22, 0x1E23, 0x0048),
            new ObUnicaseInfoChar(0x1E22, 0x1E23, 0x0048),
            new ObUnicaseInfoChar(0x1E24, 0x1E25, 0x0048),
            new ObUnicaseInfoChar(0x1E24, 0x1E25, 0x0048),
            new ObUnicaseInfoChar(0x1E26, 0x1E27, 0x0048),
            new ObUnicaseInfoChar(0x1E26, 0x1E27, 0x0048),
            new ObUnicaseInfoChar(0x1E28, 0x1E29, 0x0048),
            new ObUnicaseInfoChar(0x1E28, 0x1E29, 0x0048),
            new ObUnicaseInfoChar(0x1E2A, 0x1E2B, 0x0048),
            new ObUnicaseInfoChar(0x1E2A, 0x1E2B, 0x0048),
            new ObUnicaseInfoChar(0x1E2C, 0x1E2D, 0x0049),
            new ObUnicaseInfoChar(0x1E2C, 0x1E2D, 0x0049),
            new ObUnicaseInfoChar(0x1E2E, 0x1E2F, 0x0049),
            new ObUnicaseInfoChar(0x1E2E, 0x1E2F, 0x0049),
            new ObUnicaseInfoChar(0x1E30, 0x1E31, 0x004B),
            new ObUnicaseInfoChar(0x1E30, 0x1E31, 0x004B),
            new ObUnicaseInfoChar(0x1E32, 0x1E33, 0x004B),
            new ObUnicaseInfoChar(0x1E32, 0x1E33, 0x004B),
            new ObUnicaseInfoChar(0x1E34, 0x1E35, 0x004B),
            new ObUnicaseInfoChar(0x1E34, 0x1E35, 0x004B),
            new ObUnicaseInfoChar(0x1E36, 0x1E37, 0x004C),
            new ObUnicaseInfoChar(0x1E36, 0x1E37, 0x004C),
            new ObUnicaseInfoChar(0x1E38, 0x1E39, 0x004C),
            new ObUnicaseInfoChar(0x1E38, 0x1E39, 0x004C),
            new ObUnicaseInfoChar(0x1E3A, 0x1E3B, 0x004C),
            new ObUnicaseInfoChar(0x1E3A, 0x1E3B, 0x004C),
            new ObUnicaseInfoChar(0x1E3C, 0x1E3D, 0x004C),
            new ObUnicaseInfoChar(0x1E3C, 0x1E3D, 0x004C),
            new ObUnicaseInfoChar(0x1E3E, 0x1E3F, 0x004D),
            new ObUnicaseInfoChar(0x1E3E, 0x1E3F, 0x004D),
            new ObUnicaseInfoChar(0x1E40, 0x1E41, 0x004D),
            new ObUnicaseInfoChar(0x1E40, 0x1E41, 0x004D),
            new ObUnicaseInfoChar(0x1E42, 0x1E43, 0x004D),
            new ObUnicaseInfoChar(0x1E42, 0x1E43, 0x004D),
            new ObUnicaseInfoChar(0x1E44, 0x1E45, 0x004E),
            new ObUnicaseInfoChar(0x1E44, 0x1E45, 0x004E),
            new ObUnicaseInfoChar(0x1E46, 0x1E47, 0x004E),
            new ObUnicaseInfoChar(0x1E46, 0x1E47, 0x004E),
            new ObUnicaseInfoChar(0x1E48, 0x1E49, 0x004E),
            new ObUnicaseInfoChar(0x1E48, 0x1E49, 0x004E),
            new ObUnicaseInfoChar(0x1E4A, 0x1E4B, 0x004E),
            new ObUnicaseInfoChar(0x1E4A, 0x1E4B, 0x004E),
            new ObUnicaseInfoChar(0x1E4C, 0x1E4D, 0x004F),
            new ObUnicaseInfoChar(0x1E4C, 0x1E4D, 0x004F),
            new ObUnicaseInfoChar(0x1E4E, 0x1E4F, 0x004F),
            new ObUnicaseInfoChar(0x1E4E, 0x1E4F, 0x004F),
            new ObUnicaseInfoChar(0x1E50, 0x1E51, 0x004F),
            new ObUnicaseInfoChar(0x1E50, 0x1E51, 0x004F),
            new ObUnicaseInfoChar(0x1E52, 0x1E53, 0x004F),
            new ObUnicaseInfoChar(0x1E52, 0x1E53, 0x004F),
            new ObUnicaseInfoChar(0x1E54, 0x1E55, 0x0050),
            new ObUnicaseInfoChar(0x1E54, 0x1E55, 0x0050),
            new ObUnicaseInfoChar(0x1E56, 0x1E57, 0x0050),
            new ObUnicaseInfoChar(0x1E56, 0x1E57, 0x0050),
            new ObUnicaseInfoChar(0x1E58, 0x1E59, 0x0052),
            new ObUnicaseInfoChar(0x1E58, 0x1E59, 0x0052),
            new ObUnicaseInfoChar(0x1E5A, 0x1E5B, 0x0052),
            new ObUnicaseInfoChar(0x1E5A, 0x1E5B, 0x0052),
            new ObUnicaseInfoChar(0x1E5C, 0x1E5D, 0x0052),
            new ObUnicaseInfoChar(0x1E5C, 0x1E5D, 0x0052),
            new ObUnicaseInfoChar(0x1E5E, 0x1E5F, 0x0052),
            new ObUnicaseInfoChar(0x1E5E, 0x1E5F, 0x0052),
            new ObUnicaseInfoChar(0x1E60, 0x1E61, 0x0053),
            new ObUnicaseInfoChar(0x1E60, 0x1E61, 0x0053),
            new ObUnicaseInfoChar(0x1E62, 0x1E63, 0x0053),
            new ObUnicaseInfoChar(0x1E62, 0x1E63, 0x0053),
            new ObUnicaseInfoChar(0x1E64, 0x1E65, 0x0053),
            new ObUnicaseInfoChar(0x1E64, 0x1E65, 0x0053),
            new ObUnicaseInfoChar(0x1E66, 0x1E67, 0x0053),
            new ObUnicaseInfoChar(0x1E66, 0x1E67, 0x0053),
            new ObUnicaseInfoChar(0x1E68, 0x1E69, 0x0053),
            new ObUnicaseInfoChar(0x1E68, 0x1E69, 0x0053),
            new ObUnicaseInfoChar(0x1E6A, 0x1E6B, 0x0054),
            new ObUnicaseInfoChar(0x1E6A, 0x1E6B, 0x0054),
            new ObUnicaseInfoChar(0x1E6C, 0x1E6D, 0x0054),
            new ObUnicaseInfoChar(0x1E6C, 0x1E6D, 0x0054),
            new ObUnicaseInfoChar(0x1E6E, 0x1E6F, 0x0054),
            new ObUnicaseInfoChar(0x1E6E, 0x1E6F, 0x0054),
            new ObUnicaseInfoChar(0x1E70, 0x1E71, 0x0054),
            new ObUnicaseInfoChar(0x1E70, 0x1E71, 0x0054),
            new ObUnicaseInfoChar(0x1E72, 0x1E73, 0x0055),
            new ObUnicaseInfoChar(0x1E72, 0x1E73, 0x0055),
            new ObUnicaseInfoChar(0x1E74, 0x1E75, 0x0055),
            new ObUnicaseInfoChar(0x1E74, 0x1E75, 0x0055),
            new ObUnicaseInfoChar(0x1E76, 0x1E77, 0x0055),
            new ObUnicaseInfoChar(0x1E76, 0x1E77, 0x0055),
            new ObUnicaseInfoChar(0x1E78, 0x1E79, 0x0055),
            new ObUnicaseInfoChar(0x1E78, 0x1E79, 0x0055),
            new ObUnicaseInfoChar(0x1E7A, 0x1E7B, 0x0055),
            new ObUnicaseInfoChar(0x1E7A, 0x1E7B, 0x0055),
            new ObUnicaseInfoChar(0x1E7C, 0x1E7D, 0x0056),
            new ObUnicaseInfoChar(0x1E7C, 0x1E7D, 0x0056),
            new ObUnicaseInfoChar(0x1E7E, 0x1E7F, 0x0056),
            new ObUnicaseInfoChar(0x1E7E, 0x1E7F, 0x0056),
            new ObUnicaseInfoChar(0x1E80, 0x1E81, 0x0057),
            new ObUnicaseInfoChar(0x1E80, 0x1E81, 0x0057),
            new ObUnicaseInfoChar(0x1E82, 0x1E83, 0x0057),
            new ObUnicaseInfoChar(0x1E82, 0x1E83, 0x0057),
            new ObUnicaseInfoChar(0x1E84, 0x1E85, 0x0057),
            new ObUnicaseInfoChar(0x1E84, 0x1E85, 0x0057),
            new ObUnicaseInfoChar(0x1E86, 0x1E87, 0x0057),
            new ObUnicaseInfoChar(0x1E86, 0x1E87, 0x0057),
            new ObUnicaseInfoChar(0x1E88, 0x1E89, 0x0057),
            new ObUnicaseInfoChar(0x1E88, 0x1E89, 0x0057),
            new ObUnicaseInfoChar(0x1E8A, 0x1E8B, 0x0058),
            new ObUnicaseInfoChar(0x1E8A, 0x1E8B, 0x0058),
            new ObUnicaseInfoChar(0x1E8C, 0x1E8D, 0x0058),
            new ObUnicaseInfoChar(0x1E8C, 0x1E8D, 0x0058),
            new ObUnicaseInfoChar(0x1E8E, 0x1E8F, 0x0059),
            new ObUnicaseInfoChar(0x1E8E, 0x1E8F, 0x0059),
            new ObUnicaseInfoChar(0x1E90, 0x1E91, 0x005A),
            new ObUnicaseInfoChar(0x1E90, 0x1E91, 0x005A),
            new ObUnicaseInfoChar(0x1E92, 0x1E93, 0x005A),
            new ObUnicaseInfoChar(0x1E92, 0x1E93, 0x005A),
            new ObUnicaseInfoChar(0x1E94, 0x1E95, 0x005A),
            new ObUnicaseInfoChar(0x1E94, 0x1E95, 0x005A),
            new ObUnicaseInfoChar(0x1E96, 0x1E96, 0x0048),
            new ObUnicaseInfoChar(0x1E97, 0x1E97, 0x0054),
            new ObUnicaseInfoChar(0x1E98, 0x1E98, 0x0057),
            new ObUnicaseInfoChar(0x1E99, 0x1E99, 0x0059),
            new ObUnicaseInfoChar(0x1E9A, 0x1E9A, 0x1E9A),
            new ObUnicaseInfoChar(0x1E60, 0x1E9B, 0x0053),
            new ObUnicaseInfoChar(0x1E9C, 0x1E9C, 0x1E9C),
            new ObUnicaseInfoChar(0x1E9D, 0x1E9D, 0x1E9D),
            new ObUnicaseInfoChar(0x1E9E, 0x1E9E, 0x1E9E),
            new ObUnicaseInfoChar(0x1E9F, 0x1E9F, 0x1E9F),
            new ObUnicaseInfoChar(0x1EA0, 0x1EA1, 0x0041),
            new ObUnicaseInfoChar(0x1EA0, 0x1EA1, 0x0041),
            new ObUnicaseInfoChar(0x1EA2, 0x1EA3, 0x0041),
            new ObUnicaseInfoChar(0x1EA2, 0x1EA3, 0x0041),
            new ObUnicaseInfoChar(0x1EA4, 0x1EA5, 0x0041),
            new ObUnicaseInfoChar(0x1EA4, 0x1EA5, 0x0041),
            new ObUnicaseInfoChar(0x1EA6, 0x1EA7, 0x0041),
            new ObUnicaseInfoChar(0x1EA6, 0x1EA7, 0x0041),
            new ObUnicaseInfoChar(0x1EA8, 0x1EA9, 0x0041),
            new ObUnicaseInfoChar(0x1EA8, 0x1EA9, 0x0041),
            new ObUnicaseInfoChar(0x1EAA, 0x1EAB, 0x0041),
            new ObUnicaseInfoChar(0x1EAA, 0x1EAB, 0x0041),
            new ObUnicaseInfoChar(0x1EAC, 0x1EAD, 0x0041),
            new ObUnicaseInfoChar(0x1EAC, 0x1EAD, 0x0041),
            new ObUnicaseInfoChar(0x1EAE, 0x1EAF, 0x0041),
            new ObUnicaseInfoChar(0x1EAE, 0x1EAF, 0x0041),
            new ObUnicaseInfoChar(0x1EB0, 0x1EB1, 0x0041),
            new ObUnicaseInfoChar(0x1EB0, 0x1EB1, 0x0041),
            new ObUnicaseInfoChar(0x1EB2, 0x1EB3, 0x0041),
            new ObUnicaseInfoChar(0x1EB2, 0x1EB3, 0x0041),
            new ObUnicaseInfoChar(0x1EB4, 0x1EB5, 0x0041),
            new ObUnicaseInfoChar(0x1EB4, 0x1EB5, 0x0041),
            new ObUnicaseInfoChar(0x1EB6, 0x1EB7, 0x0041),
            new ObUnicaseInfoChar(0x1EB6, 0x1EB7, 0x0041),
            new ObUnicaseInfoChar(0x1EB8, 0x1EB9, 0x0045),
            new ObUnicaseInfoChar(0x1EB8, 0x1EB9, 0x0045),
            new ObUnicaseInfoChar(0x1EBA, 0x1EBB, 0x0045),
            new ObUnicaseInfoChar(0x1EBA, 0x1EBB, 0x0045),
            new ObUnicaseInfoChar(0x1EBC, 0x1EBD, 0x0045),
            new ObUnicaseInfoChar(0x1EBC, 0x1EBD, 0x0045),
            new ObUnicaseInfoChar(0x1EBE, 0x1EBF, 0x0045),
            new ObUnicaseInfoChar(0x1EBE, 0x1EBF, 0x0045),
            new ObUnicaseInfoChar(0x1EC0, 0x1EC1, 0x0045),
            new ObUnicaseInfoChar(0x1EC0, 0x1EC1, 0x0045),
            new ObUnicaseInfoChar(0x1EC2, 0x1EC3, 0x0045),
            new ObUnicaseInfoChar(0x1EC2, 0x1EC3, 0x0045),
            new ObUnicaseInfoChar(0x1EC4, 0x1EC5, 0x0045),
            new ObUnicaseInfoChar(0x1EC4, 0x1EC5, 0x0045),
            new ObUnicaseInfoChar(0x1EC6, 0x1EC7, 0x0045),
            new ObUnicaseInfoChar(0x1EC6, 0x1EC7, 0x0045),
            new ObUnicaseInfoChar(0x1EC8, 0x1EC9, 0x0049),
            new ObUnicaseInfoChar(0x1EC8, 0x1EC9, 0x0049),
            new ObUnicaseInfoChar(0x1ECA, 0x1ECB, 0x0049),
            new ObUnicaseInfoChar(0x1ECA, 0x1ECB, 0x0049),
            new ObUnicaseInfoChar(0x1ECC, 0x1ECD, 0x004F),
            new ObUnicaseInfoChar(0x1ECC, 0x1ECD, 0x004F),
            new ObUnicaseInfoChar(0x1ECE, 0x1ECF, 0x004F),
            new ObUnicaseInfoChar(0x1ECE, 0x1ECF, 0x004F),
            new ObUnicaseInfoChar(0x1ED0, 0x1ED1, 0x004F),
            new ObUnicaseInfoChar(0x1ED0, 0x1ED1, 0x004F),
            new ObUnicaseInfoChar(0x1ED2, 0x1ED3, 0x004F),
            new ObUnicaseInfoChar(0x1ED2, 0x1ED3, 0x004F),
            new ObUnicaseInfoChar(0x1ED4, 0x1ED5, 0x004F),
            new ObUnicaseInfoChar(0x1ED4, 0x1ED5, 0x004F),
            new ObUnicaseInfoChar(0x1ED6, 0x1ED7, 0x004F),
            new ObUnicaseInfoChar(0x1ED6, 0x1ED7, 0x004F),
            new ObUnicaseInfoChar(0x1ED8, 0x1ED9, 0x004F),
            new ObUnicaseInfoChar(0x1ED8, 0x1ED9, 0x004F),
            new ObUnicaseInfoChar(0x1EDA, 0x1EDB, 0x004F),
            new ObUnicaseInfoChar(0x1EDA, 0x1EDB, 0x004F),
            new ObUnicaseInfoChar(0x1EDC, 0x1EDD, 0x004F),
            new ObUnicaseInfoChar(0x1EDC, 0x1EDD, 0x004F),
            new ObUnicaseInfoChar(0x1EDE, 0x1EDF, 0x004F),
            new ObUnicaseInfoChar(0x1EDE, 0x1EDF, 0x004F),
            new ObUnicaseInfoChar(0x1EE0, 0x1EE1, 0x004F),
            new ObUnicaseInfoChar(0x1EE0, 0x1EE1, 0x004F),
            new ObUnicaseInfoChar(0x1EE2, 0x1EE3, 0x004F),
            new ObUnicaseInfoChar(0x1EE2, 0x1EE3, 0x004F),
            new ObUnicaseInfoChar(0x1EE4, 0x1EE5, 0x0055),
            new ObUnicaseInfoChar(0x1EE4, 0x1EE5, 0x0055),
            new ObUnicaseInfoChar(0x1EE6, 0x1EE7, 0x0055),
            new ObUnicaseInfoChar(0x1EE6, 0x1EE7, 0x0055),
            new ObUnicaseInfoChar(0x1EE8, 0x1EE9, 0x0055),
            new ObUnicaseInfoChar(0x1EE8, 0x1EE9, 0x0055),
            new ObUnicaseInfoChar(0x1EEA, 0x1EEB, 0x0055),
            new ObUnicaseInfoChar(0x1EEA, 0x1EEB, 0x0055),
            new ObUnicaseInfoChar(0x1EEC, 0x1EED, 0x0055),
            new ObUnicaseInfoChar(0x1EEC, 0x1EED, 0x0055),
            new ObUnicaseInfoChar(0x1EEE, 0x1EEF, 0x0055),
            new ObUnicaseInfoChar(0x1EEE, 0x1EEF, 0x0055),
            new ObUnicaseInfoChar(0x1EF0, 0x1EF1, 0x0055),
            new ObUnicaseInfoChar(0x1EF0, 0x1EF1, 0x0055),
            new ObUnicaseInfoChar(0x1EF2, 0x1EF3, 0x0059),
            new ObUnicaseInfoChar(0x1EF2, 0x1EF3, 0x0059),
            new ObUnicaseInfoChar(0x1EF4, 0x1EF5, 0x0059),
            new ObUnicaseInfoChar(0x1EF4, 0x1EF5, 0x0059),
            new ObUnicaseInfoChar(0x1EF6, 0x1EF7, 0x0059),
            new ObUnicaseInfoChar(0x1EF6, 0x1EF7, 0x0059),
            new ObUnicaseInfoChar(0x1EF8, 0x1EF9, 0x0059),
            new ObUnicaseInfoChar(0x1EF8, 0x1EF9, 0x0059),
            new ObUnicaseInfoChar(0x1EFA, 0x1EFA, 0x1EFA),
            new ObUnicaseInfoChar(0x1EFB, 0x1EFB, 0x1EFB),
            new ObUnicaseInfoChar(0x1EFC, 0x1EFC, 0x1EFC),
            new ObUnicaseInfoChar(0x1EFD, 0x1EFD, 0x1EFD),
            new ObUnicaseInfoChar(0x1EFE, 0x1EFE, 0x1EFE),
            new ObUnicaseInfoChar(0x1EFF, 0x1EFF, 0x1EFF)          };

    public static ObUnicaseInfoChar[]   plane1F                     = {
            new ObUnicaseInfoChar(0x1F08, 0x1F00, 0x0391),
            new ObUnicaseInfoChar(0x1F09, 0x1F01, 0x0391),
            new ObUnicaseInfoChar(0x1F0A, 0x1F02, 0x0391),
            new ObUnicaseInfoChar(0x1F0B, 0x1F03, 0x0391),
            new ObUnicaseInfoChar(0x1F0C, 0x1F04, 0x0391),
            new ObUnicaseInfoChar(0x1F0D, 0x1F05, 0x0391),
            new ObUnicaseInfoChar(0x1F0E, 0x1F06, 0x0391),
            new ObUnicaseInfoChar(0x1F0F, 0x1F07, 0x0391),
            new ObUnicaseInfoChar(0x1F08, 0x1F00, 0x0391),
            new ObUnicaseInfoChar(0x1F09, 0x1F01, 0x0391),
            new ObUnicaseInfoChar(0x1F0A, 0x1F02, 0x0391),
            new ObUnicaseInfoChar(0x1F0B, 0x1F03, 0x0391),
            new ObUnicaseInfoChar(0x1F0C, 0x1F04, 0x0391),
            new ObUnicaseInfoChar(0x1F0D, 0x1F05, 0x0391),
            new ObUnicaseInfoChar(0x1F0E, 0x1F06, 0x0391),
            new ObUnicaseInfoChar(0x1F0F, 0x1F07, 0x0391),
            new ObUnicaseInfoChar(0x1F18, 0x1F10, 0x0395),
            new ObUnicaseInfoChar(0x1F19, 0x1F11, 0x0395),
            new ObUnicaseInfoChar(0x1F1A, 0x1F12, 0x0395),
            new ObUnicaseInfoChar(0x1F1B, 0x1F13, 0x0395),
            new ObUnicaseInfoChar(0x1F1C, 0x1F14, 0x0395),
            new ObUnicaseInfoChar(0x1F1D, 0x1F15, 0x0395),
            new ObUnicaseInfoChar(0x1F16, 0x1F16, 0x1F16),
            new ObUnicaseInfoChar(0x1F17, 0x1F17, 0x1F17),
            new ObUnicaseInfoChar(0x1F18, 0x1F10, 0x0395),
            new ObUnicaseInfoChar(0x1F19, 0x1F11, 0x0395),
            new ObUnicaseInfoChar(0x1F1A, 0x1F12, 0x0395),
            new ObUnicaseInfoChar(0x1F1B, 0x1F13, 0x0395),
            new ObUnicaseInfoChar(0x1F1C, 0x1F14, 0x0395),
            new ObUnicaseInfoChar(0x1F1D, 0x1F15, 0x0395),
            new ObUnicaseInfoChar(0x1F1E, 0x1F1E, 0x1F1E),
            new ObUnicaseInfoChar(0x1F1F, 0x1F1F, 0x1F1F),
            new ObUnicaseInfoChar(0x1F28, 0x1F20, 0x0397),
            new ObUnicaseInfoChar(0x1F29, 0x1F21, 0x0397),
            new ObUnicaseInfoChar(0x1F2A, 0x1F22, 0x0397),
            new ObUnicaseInfoChar(0x1F2B, 0x1F23, 0x0397),
            new ObUnicaseInfoChar(0x1F2C, 0x1F24, 0x0397),
            new ObUnicaseInfoChar(0x1F2D, 0x1F25, 0x0397),
            new ObUnicaseInfoChar(0x1F2E, 0x1F26, 0x0397),
            new ObUnicaseInfoChar(0x1F2F, 0x1F27, 0x0397),
            new ObUnicaseInfoChar(0x1F28, 0x1F20, 0x0397),
            new ObUnicaseInfoChar(0x1F29, 0x1F21, 0x0397),
            new ObUnicaseInfoChar(0x1F2A, 0x1F22, 0x0397),
            new ObUnicaseInfoChar(0x1F2B, 0x1F23, 0x0397),
            new ObUnicaseInfoChar(0x1F2C, 0x1F24, 0x0397),
            new ObUnicaseInfoChar(0x1F2D, 0x1F25, 0x0397),
            new ObUnicaseInfoChar(0x1F2E, 0x1F26, 0x0397),
            new ObUnicaseInfoChar(0x1F2F, 0x1F27, 0x0397),
            new ObUnicaseInfoChar(0x1F38, 0x1F30, 0x0399),
            new ObUnicaseInfoChar(0x1F39, 0x1F31, 0x0399),
            new ObUnicaseInfoChar(0x1F3A, 0x1F32, 0x0399),
            new ObUnicaseInfoChar(0x1F3B, 0x1F33, 0x0399),
            new ObUnicaseInfoChar(0x1F3C, 0x1F34, 0x0399),
            new ObUnicaseInfoChar(0x1F3D, 0x1F35, 0x0399),
            new ObUnicaseInfoChar(0x1F3E, 0x1F36, 0x0399),
            new ObUnicaseInfoChar(0x1F3F, 0x1F37, 0x0399),
            new ObUnicaseInfoChar(0x1F38, 0x1F30, 0x0399),
            new ObUnicaseInfoChar(0x1F39, 0x1F31, 0x0399),
            new ObUnicaseInfoChar(0x1F3A, 0x1F32, 0x0399),
            new ObUnicaseInfoChar(0x1F3B, 0x1F33, 0x0399),
            new ObUnicaseInfoChar(0x1F3C, 0x1F34, 0x0399),
            new ObUnicaseInfoChar(0x1F3D, 0x1F35, 0x0399),
            new ObUnicaseInfoChar(0x1F3E, 0x1F36, 0x0399),
            new ObUnicaseInfoChar(0x1F3F, 0x1F37, 0x0399),
            new ObUnicaseInfoChar(0x1F48, 0x1F40, 0x039F),
            new ObUnicaseInfoChar(0x1F49, 0x1F41, 0x039F),
            new ObUnicaseInfoChar(0x1F4A, 0x1F42, 0x039F),
            new ObUnicaseInfoChar(0x1F4B, 0x1F43, 0x039F),
            new ObUnicaseInfoChar(0x1F4C, 0x1F44, 0x039F),
            new ObUnicaseInfoChar(0x1F4D, 0x1F45, 0x039F),
            new ObUnicaseInfoChar(0x1F46, 0x1F46, 0x1F46),
            new ObUnicaseInfoChar(0x1F47, 0x1F47, 0x1F47),
            new ObUnicaseInfoChar(0x1F48, 0x1F40, 0x039F),
            new ObUnicaseInfoChar(0x1F49, 0x1F41, 0x039F),
            new ObUnicaseInfoChar(0x1F4A, 0x1F42, 0x039F),
            new ObUnicaseInfoChar(0x1F4B, 0x1F43, 0x039F),
            new ObUnicaseInfoChar(0x1F4C, 0x1F44, 0x039F),
            new ObUnicaseInfoChar(0x1F4D, 0x1F45, 0x039F),
            new ObUnicaseInfoChar(0x1F4E, 0x1F4E, 0x1F4E),
            new ObUnicaseInfoChar(0x1F4F, 0x1F4F, 0x1F4F),
            new ObUnicaseInfoChar(0x1F50, 0x1F50, 0x03A5),
            new ObUnicaseInfoChar(0x1F59, 0x1F51, 0x03A5),
            new ObUnicaseInfoChar(0x1F52, 0x1F52, 0x03A5),
            new ObUnicaseInfoChar(0x1F5B, 0x1F53, 0x03A5),
            new ObUnicaseInfoChar(0x1F54, 0x1F54, 0x03A5),
            new ObUnicaseInfoChar(0x1F5D, 0x1F55, 0x03A5),
            new ObUnicaseInfoChar(0x1F56, 0x1F56, 0x03A5),
            new ObUnicaseInfoChar(0x1F5F, 0x1F57, 0x03A5),
            new ObUnicaseInfoChar(0x1F58, 0x1F58, 0x1F58),
            new ObUnicaseInfoChar(0x1F59, 0x1F51, 0x03A5),
            new ObUnicaseInfoChar(0x1F5A, 0x1F5A, 0x1F5A),
            new ObUnicaseInfoChar(0x1F5B, 0x1F53, 0x03A5),
            new ObUnicaseInfoChar(0x1F5C, 0x1F5C, 0x1F5C),
            new ObUnicaseInfoChar(0x1F5D, 0x1F55, 0x03A5),
            new ObUnicaseInfoChar(0x1F5E, 0x1F5E, 0x1F5E),
            new ObUnicaseInfoChar(0x1F5F, 0x1F57, 0x03A5),
            new ObUnicaseInfoChar(0x1F68, 0x1F60, 0x03A9),
            new ObUnicaseInfoChar(0x1F69, 0x1F61, 0x03A9),
            new ObUnicaseInfoChar(0x1F6A, 0x1F62, 0x03A9),
            new ObUnicaseInfoChar(0x1F6B, 0x1F63, 0x03A9),
            new ObUnicaseInfoChar(0x1F6C, 0x1F64, 0x03A9),
            new ObUnicaseInfoChar(0x1F6D, 0x1F65, 0x03A9),
            new ObUnicaseInfoChar(0x1F6E, 0x1F66, 0x03A9),
            new ObUnicaseInfoChar(0x1F6F, 0x1F67, 0x03A9),
            new ObUnicaseInfoChar(0x1F68, 0x1F60, 0x03A9),
            new ObUnicaseInfoChar(0x1F69, 0x1F61, 0x03A9),
            new ObUnicaseInfoChar(0x1F6A, 0x1F62, 0x03A9),
            new ObUnicaseInfoChar(0x1F6B, 0x1F63, 0x03A9),
            new ObUnicaseInfoChar(0x1F6C, 0x1F64, 0x03A9),
            new ObUnicaseInfoChar(0x1F6D, 0x1F65, 0x03A9),
            new ObUnicaseInfoChar(0x1F6E, 0x1F66, 0x03A9),
            new ObUnicaseInfoChar(0x1F6F, 0x1F67, 0x03A9),
            new ObUnicaseInfoChar(0x1FBA, 0x1F70, 0x0391),
            new ObUnicaseInfoChar(0x1FBB, 0x1F71, 0x1FBB),
            new ObUnicaseInfoChar(0x1FC8, 0x1F72, 0x0395),
            new ObUnicaseInfoChar(0x1FC9, 0x1F73, 0x1FC9),
            new ObUnicaseInfoChar(0x1FCA, 0x1F74, 0x0397),
            new ObUnicaseInfoChar(0x1FCB, 0x1F75, 0x1FCB),
            new ObUnicaseInfoChar(0x1FDA, 0x1F76, 0x0399),
            new ObUnicaseInfoChar(0x1FDB, 0x1F77, 0x1FDB),
            new ObUnicaseInfoChar(0x1FF8, 0x1F78, 0x039F),
            new ObUnicaseInfoChar(0x1FF9, 0x1F79, 0x1FF9),
            new ObUnicaseInfoChar(0x1FEA, 0x1F7A, 0x03A5),
            new ObUnicaseInfoChar(0x1FEB, 0x1F7B, 0x1FEB),
            new ObUnicaseInfoChar(0x1FFA, 0x1F7C, 0x03A9),
            new ObUnicaseInfoChar(0x1FFB, 0x1F7D, 0x1FFB),
            new ObUnicaseInfoChar(0x1F7E, 0x1F7E, 0x1F7E),
            new ObUnicaseInfoChar(0x1F7F, 0x1F7F, 0x1F7F),
            new ObUnicaseInfoChar(0x1F88, 0x1F80, 0x0391),
            new ObUnicaseInfoChar(0x1F89, 0x1F81, 0x0391),
            new ObUnicaseInfoChar(0x1F8A, 0x1F82, 0x0391),
            new ObUnicaseInfoChar(0x1F8B, 0x1F83, 0x0391),
            new ObUnicaseInfoChar(0x1F8C, 0x1F84, 0x0391),
            new ObUnicaseInfoChar(0x1F8D, 0x1F85, 0x0391),
            new ObUnicaseInfoChar(0x1F8E, 0x1F86, 0x0391),
            new ObUnicaseInfoChar(0x1F8F, 0x1F87, 0x0391),
            new ObUnicaseInfoChar(0x1F88, 0x1F80, 0x0391),
            new ObUnicaseInfoChar(0x1F89, 0x1F81, 0x0391),
            new ObUnicaseInfoChar(0x1F8A, 0x1F82, 0x0391),
            new ObUnicaseInfoChar(0x1F8B, 0x1F83, 0x0391),
            new ObUnicaseInfoChar(0x1F8C, 0x1F84, 0x0391),
            new ObUnicaseInfoChar(0x1F8D, 0x1F85, 0x0391),
            new ObUnicaseInfoChar(0x1F8E, 0x1F86, 0x0391),
            new ObUnicaseInfoChar(0x1F8F, 0x1F87, 0x0391),
            new ObUnicaseInfoChar(0x1F98, 0x1F90, 0x0397),
            new ObUnicaseInfoChar(0x1F99, 0x1F91, 0x0397),
            new ObUnicaseInfoChar(0x1F9A, 0x1F92, 0x0397),
            new ObUnicaseInfoChar(0x1F9B, 0x1F93, 0x0397),
            new ObUnicaseInfoChar(0x1F9C, 0x1F94, 0x0397),
            new ObUnicaseInfoChar(0x1F9D, 0x1F95, 0x0397),
            new ObUnicaseInfoChar(0x1F9E, 0x1F96, 0x0397),
            new ObUnicaseInfoChar(0x1F9F, 0x1F97, 0x0397),
            new ObUnicaseInfoChar(0x1F98, 0x1F90, 0x0397),
            new ObUnicaseInfoChar(0x1F99, 0x1F91, 0x0397),
            new ObUnicaseInfoChar(0x1F9A, 0x1F92, 0x0397),
            new ObUnicaseInfoChar(0x1F9B, 0x1F93, 0x0397),
            new ObUnicaseInfoChar(0x1F9C, 0x1F94, 0x0397),
            new ObUnicaseInfoChar(0x1F9D, 0x1F95, 0x0397),
            new ObUnicaseInfoChar(0x1F9E, 0x1F96, 0x0397),
            new ObUnicaseInfoChar(0x1F9F, 0x1F97, 0x0397),
            new ObUnicaseInfoChar(0x1FA8, 0x1FA0, 0x03A9),
            new ObUnicaseInfoChar(0x1FA9, 0x1FA1, 0x03A9),
            new ObUnicaseInfoChar(0x1FAA, 0x1FA2, 0x03A9),
            new ObUnicaseInfoChar(0x1FAB, 0x1FA3, 0x03A9),
            new ObUnicaseInfoChar(0x1FAC, 0x1FA4, 0x03A9),
            new ObUnicaseInfoChar(0x1FAD, 0x1FA5, 0x03A9),
            new ObUnicaseInfoChar(0x1FAE, 0x1FA6, 0x03A9),
            new ObUnicaseInfoChar(0x1FAF, 0x1FA7, 0x03A9),
            new ObUnicaseInfoChar(0x1FA8, 0x1FA0, 0x03A9),
            new ObUnicaseInfoChar(0x1FA9, 0x1FA1, 0x03A9),
            new ObUnicaseInfoChar(0x1FAA, 0x1FA2, 0x03A9),
            new ObUnicaseInfoChar(0x1FAB, 0x1FA3, 0x03A9),
            new ObUnicaseInfoChar(0x1FAC, 0x1FA4, 0x03A9),
            new ObUnicaseInfoChar(0x1FAD, 0x1FA5, 0x03A9),
            new ObUnicaseInfoChar(0x1FAE, 0x1FA6, 0x03A9),
            new ObUnicaseInfoChar(0x1FAF, 0x1FA7, 0x03A9),
            new ObUnicaseInfoChar(0x1FB8, 0x1FB0, 0x0391),
            new ObUnicaseInfoChar(0x1FB9, 0x1FB1, 0x0391),
            new ObUnicaseInfoChar(0x1FB2, 0x1FB2, 0x0391),
            new ObUnicaseInfoChar(0x1FBC, 0x1FB3, 0x0391),
            new ObUnicaseInfoChar(0x1FB4, 0x1FB4, 0x0391),
            new ObUnicaseInfoChar(0x1FB5, 0x1FB5, 0x1FB5),
            new ObUnicaseInfoChar(0x1FB6, 0x1FB6, 0x0391),
            new ObUnicaseInfoChar(0x1FB7, 0x1FB7, 0x0391),
            new ObUnicaseInfoChar(0x1FB8, 0x1FB0, 0x0391),
            new ObUnicaseInfoChar(0x1FB9, 0x1FB1, 0x0391),
            new ObUnicaseInfoChar(0x1FBA, 0x1F70, 0x0391),
            new ObUnicaseInfoChar(0x1FBB, 0x1F71, 0x1FBB),
            new ObUnicaseInfoChar(0x1FBC, 0x1FB3, 0x0391),
            new ObUnicaseInfoChar(0x1FBD, 0x1FBD, 0x1FBD),
            new ObUnicaseInfoChar(0x0399, 0x1FBE, 0x0399),
            new ObUnicaseInfoChar(0x1FBF, 0x1FBF, 0x1FBF),
            new ObUnicaseInfoChar(0x1FC0, 0x1FC0, 0x1FC0),
            new ObUnicaseInfoChar(0x1FC1, 0x1FC1, 0x1FC1),
            new ObUnicaseInfoChar(0x1FC2, 0x1FC2, 0x0397),
            new ObUnicaseInfoChar(0x1FCC, 0x1FC3, 0x0397),
            new ObUnicaseInfoChar(0x1FC4, 0x1FC4, 0x0397),
            new ObUnicaseInfoChar(0x1FC5, 0x1FC5, 0x1FC5),
            new ObUnicaseInfoChar(0x1FC6, 0x1FC6, 0x0397),
            new ObUnicaseInfoChar(0x1FC7, 0x1FC7, 0x0397),
            new ObUnicaseInfoChar(0x1FC8, 0x1F72, 0x0395),
            new ObUnicaseInfoChar(0x1FC9, 0x1F73, 0x1FC9),
            new ObUnicaseInfoChar(0x1FCA, 0x1F74, 0x0397),
            new ObUnicaseInfoChar(0x1FCB, 0x1F75, 0x1FCB),
            new ObUnicaseInfoChar(0x1FCC, 0x1FC3, 0x0397),
            new ObUnicaseInfoChar(0x1FCD, 0x1FCD, 0x1FCD),
            new ObUnicaseInfoChar(0x1FCE, 0x1FCE, 0x1FCE),
            new ObUnicaseInfoChar(0x1FCF, 0x1FCF, 0x1FCF),
            new ObUnicaseInfoChar(0x1FD8, 0x1FD0, 0x0399),
            new ObUnicaseInfoChar(0x1FD9, 0x1FD1, 0x0399),
            new ObUnicaseInfoChar(0x1FD2, 0x1FD2, 0x0399),
            new ObUnicaseInfoChar(0x1FD3, 0x1FD3, 0x1FD3),
            new ObUnicaseInfoChar(0x1FD4, 0x1FD4, 0x1FD4),
            new ObUnicaseInfoChar(0x1FD5, 0x1FD5, 0x1FD5),
            new ObUnicaseInfoChar(0x1FD6, 0x1FD6, 0x0399),
            new ObUnicaseInfoChar(0x1FD7, 0x1FD7, 0x0399),
            new ObUnicaseInfoChar(0x1FD8, 0x1FD0, 0x0399),
            new ObUnicaseInfoChar(0x1FD9, 0x1FD1, 0x0399),
            new ObUnicaseInfoChar(0x1FDA, 0x1F76, 0x0399),
            new ObUnicaseInfoChar(0x1FDB, 0x1F77, 0x1FDB),
            new ObUnicaseInfoChar(0x1FDC, 0x1FDC, 0x1FDC),
            new ObUnicaseInfoChar(0x1FDD, 0x1FDD, 0x1FDD),
            new ObUnicaseInfoChar(0x1FDE, 0x1FDE, 0x1FDE),
            new ObUnicaseInfoChar(0x1FDF, 0x1FDF, 0x1FDF),
            new ObUnicaseInfoChar(0x1FE8, 0x1FE0, 0x03A5),
            new ObUnicaseInfoChar(0x1FE9, 0x1FE1, 0x03A5),
            new ObUnicaseInfoChar(0x1FE2, 0x1FE2, 0x03A5),
            new ObUnicaseInfoChar(0x1FE3, 0x1FE3, 0x1FE3),
            new ObUnicaseInfoChar(0x1FE4, 0x1FE4, 0x03A1),
            new ObUnicaseInfoChar(0x1FEC, 0x1FE5, 0x03A1),
            new ObUnicaseInfoChar(0x1FE6, 0x1FE6, 0x03A5),
            new ObUnicaseInfoChar(0x1FE7, 0x1FE7, 0x03A5),
            new ObUnicaseInfoChar(0x1FE8, 0x1FE0, 0x03A5),
            new ObUnicaseInfoChar(0x1FE9, 0x1FE1, 0x03A5),
            new ObUnicaseInfoChar(0x1FEA, 0x1F7A, 0x03A5),
            new ObUnicaseInfoChar(0x1FEB, 0x1F7B, 0x1FEB),
            new ObUnicaseInfoChar(0x1FEC, 0x1FE5, 0x03A1),
            new ObUnicaseInfoChar(0x1FED, 0x1FED, 0x1FED),
            new ObUnicaseInfoChar(0x1FEE, 0x1FEE, 0x1FEE),
            new ObUnicaseInfoChar(0x1FEF, 0x1FEF, 0x1FEF),
            new ObUnicaseInfoChar(0x1FF0, 0x1FF0, 0x1FF0),
            new ObUnicaseInfoChar(0x1FF1, 0x1FF1, 0x1FF1),
            new ObUnicaseInfoChar(0x1FF2, 0x1FF2, 0x03A9),
            new ObUnicaseInfoChar(0x1FFC, 0x1FF3, 0x03A9),
            new ObUnicaseInfoChar(0x1FF4, 0x1FF4, 0x03A9),
            new ObUnicaseInfoChar(0x1FF5, 0x1FF5, 0x1FF5),
            new ObUnicaseInfoChar(0x1FF6, 0x1FF6, 0x03A9),
            new ObUnicaseInfoChar(0x1FF7, 0x1FF7, 0x03A9),
            new ObUnicaseInfoChar(0x1FF8, 0x1F78, 0x039F),
            new ObUnicaseInfoChar(0x1FF9, 0x1F79, 0x1FF9),
            new ObUnicaseInfoChar(0x1FFA, 0x1F7C, 0x03A9),
            new ObUnicaseInfoChar(0x1FFB, 0x1F7D, 0x1FFB),
            new ObUnicaseInfoChar(0x1FFC, 0x1FF3, 0x03A9),
            new ObUnicaseInfoChar(0x1FFD, 0x1FFD, 0x1FFD),
            new ObUnicaseInfoChar(0x1FFE, 0x1FFE, 0x1FFE),
            new ObUnicaseInfoChar(0x1FFF, 0x1FFF, 0x1FFF)          };

    public static ObUnicaseInfoChar[]   plane21                     = {
            new ObUnicaseInfoChar(0x2100, 0x2100, 0x2100),
            new ObUnicaseInfoChar(0x2101, 0x2101, 0x2101),
            new ObUnicaseInfoChar(0x2102, 0x2102, 0x2102),
            new ObUnicaseInfoChar(0x2103, 0x2103, 0x2103),
            new ObUnicaseInfoChar(0x2104, 0x2104, 0x2104),
            new ObUnicaseInfoChar(0x2105, 0x2105, 0x2105),
            new ObUnicaseInfoChar(0x2106, 0x2106, 0x2106),
            new ObUnicaseInfoChar(0x2107, 0x2107, 0x2107),
            new ObUnicaseInfoChar(0x2108, 0x2108, 0x2108),
            new ObUnicaseInfoChar(0x2109, 0x2109, 0x2109),
            new ObUnicaseInfoChar(0x210A, 0x210A, 0x210A),
            new ObUnicaseInfoChar(0x210B, 0x210B, 0x210B),
            new ObUnicaseInfoChar(0x210C, 0x210C, 0x210C),
            new ObUnicaseInfoChar(0x210D, 0x210D, 0x210D),
            new ObUnicaseInfoChar(0x210E, 0x210E, 0x210E),
            new ObUnicaseInfoChar(0x210F, 0x210F, 0x210F),
            new ObUnicaseInfoChar(0x2110, 0x2110, 0x2110),
            new ObUnicaseInfoChar(0x2111, 0x2111, 0x2111),
            new ObUnicaseInfoChar(0x2112, 0x2112, 0x2112),
            new ObUnicaseInfoChar(0x2113, 0x2113, 0x2113),
            new ObUnicaseInfoChar(0x2114, 0x2114, 0x2114),
            new ObUnicaseInfoChar(0x2115, 0x2115, 0x2115),
            new ObUnicaseInfoChar(0x2116, 0x2116, 0x2116),
            new ObUnicaseInfoChar(0x2117, 0x2117, 0x2117),
            new ObUnicaseInfoChar(0x2118, 0x2118, 0x2118),
            new ObUnicaseInfoChar(0x2119, 0x2119, 0x2119),
            new ObUnicaseInfoChar(0x211A, 0x211A, 0x211A),
            new ObUnicaseInfoChar(0x211B, 0x211B, 0x211B),
            new ObUnicaseInfoChar(0x211C, 0x211C, 0x211C),
            new ObUnicaseInfoChar(0x211D, 0x211D, 0x211D),
            new ObUnicaseInfoChar(0x211E, 0x211E, 0x211E),
            new ObUnicaseInfoChar(0x211F, 0x211F, 0x211F),
            new ObUnicaseInfoChar(0x2120, 0x2120, 0x2120),
            new ObUnicaseInfoChar(0x2121, 0x2121, 0x2121),
            new ObUnicaseInfoChar(0x2122, 0x2122, 0x2122),
            new ObUnicaseInfoChar(0x2123, 0x2123, 0x2123),
            new ObUnicaseInfoChar(0x2124, 0x2124, 0x2124),
            new ObUnicaseInfoChar(0x2125, 0x2125, 0x2125),
            new ObUnicaseInfoChar(0x2126, 0x03C9, 0x2126),
            new ObUnicaseInfoChar(0x2127, 0x2127, 0x2127),
            new ObUnicaseInfoChar(0x2128, 0x2128, 0x2128),
            new ObUnicaseInfoChar(0x2129, 0x2129, 0x2129),
            new ObUnicaseInfoChar(0x212A, 0x006B, 0x212A),
            new ObUnicaseInfoChar(0x212B, 0x00E5, 0x212B),
            new ObUnicaseInfoChar(0x212C, 0x212C, 0x212C),
            new ObUnicaseInfoChar(0x212D, 0x212D, 0x212D),
            new ObUnicaseInfoChar(0x212E, 0x212E, 0x212E),
            new ObUnicaseInfoChar(0x212F, 0x212F, 0x212F),
            new ObUnicaseInfoChar(0x2130, 0x2130, 0x2130),
            new ObUnicaseInfoChar(0x2131, 0x2131, 0x2131),
            new ObUnicaseInfoChar(0x2132, 0x2132, 0x2132),
            new ObUnicaseInfoChar(0x2133, 0x2133, 0x2133),
            new ObUnicaseInfoChar(0x2134, 0x2134, 0x2134),
            new ObUnicaseInfoChar(0x2135, 0x2135, 0x2135),
            new ObUnicaseInfoChar(0x2136, 0x2136, 0x2136),
            new ObUnicaseInfoChar(0x2137, 0x2137, 0x2137),
            new ObUnicaseInfoChar(0x2138, 0x2138, 0x2138),
            new ObUnicaseInfoChar(0x2139, 0x2139, 0x2139),
            new ObUnicaseInfoChar(0x213A, 0x213A, 0x213A),
            new ObUnicaseInfoChar(0x213B, 0x213B, 0x213B),
            new ObUnicaseInfoChar(0x213C, 0x213C, 0x213C),
            new ObUnicaseInfoChar(0x213D, 0x213D, 0x213D),
            new ObUnicaseInfoChar(0x213E, 0x213E, 0x213E),
            new ObUnicaseInfoChar(0x213F, 0x213F, 0x213F),
            new ObUnicaseInfoChar(0x2140, 0x2140, 0x2140),
            new ObUnicaseInfoChar(0x2141, 0x2141, 0x2141),
            new ObUnicaseInfoChar(0x2142, 0x2142, 0x2142),
            new ObUnicaseInfoChar(0x2143, 0x2143, 0x2143),
            new ObUnicaseInfoChar(0x2144, 0x2144, 0x2144),
            new ObUnicaseInfoChar(0x2145, 0x2145, 0x2145),
            new ObUnicaseInfoChar(0x2146, 0x2146, 0x2146),
            new ObUnicaseInfoChar(0x2147, 0x2147, 0x2147),
            new ObUnicaseInfoChar(0x2148, 0x2148, 0x2148),
            new ObUnicaseInfoChar(0x2149, 0x2149, 0x2149),
            new ObUnicaseInfoChar(0x214A, 0x214A, 0x214A),
            new ObUnicaseInfoChar(0x214B, 0x214B, 0x214B),
            new ObUnicaseInfoChar(0x214C, 0x214C, 0x214C),
            new ObUnicaseInfoChar(0x214D, 0x214D, 0x214D),
            new ObUnicaseInfoChar(0x214E, 0x214E, 0x214E),
            new ObUnicaseInfoChar(0x214F, 0x214F, 0x214F),
            new ObUnicaseInfoChar(0x2150, 0x2150, 0x2150),
            new ObUnicaseInfoChar(0x2151, 0x2151, 0x2151),
            new ObUnicaseInfoChar(0x2152, 0x2152, 0x2152),
            new ObUnicaseInfoChar(0x2153, 0x2153, 0x2153),
            new ObUnicaseInfoChar(0x2154, 0x2154, 0x2154),
            new ObUnicaseInfoChar(0x2155, 0x2155, 0x2155),
            new ObUnicaseInfoChar(0x2156, 0x2156, 0x2156),
            new ObUnicaseInfoChar(0x2157, 0x2157, 0x2157),
            new ObUnicaseInfoChar(0x2158, 0x2158, 0x2158),
            new ObUnicaseInfoChar(0x2159, 0x2159, 0x2159),
            new ObUnicaseInfoChar(0x215A, 0x215A, 0x215A),
            new ObUnicaseInfoChar(0x215B, 0x215B, 0x215B),
            new ObUnicaseInfoChar(0x215C, 0x215C, 0x215C),
            new ObUnicaseInfoChar(0x215D, 0x215D, 0x215D),
            new ObUnicaseInfoChar(0x215E, 0x215E, 0x215E),
            new ObUnicaseInfoChar(0x215F, 0x215F, 0x215F),
            new ObUnicaseInfoChar(0x2160, 0x2170, 0x2160),
            new ObUnicaseInfoChar(0x2161, 0x2171, 0x2161),
            new ObUnicaseInfoChar(0x2162, 0x2172, 0x2162),
            new ObUnicaseInfoChar(0x2163, 0x2173, 0x2163),
            new ObUnicaseInfoChar(0x2164, 0x2174, 0x2164),
            new ObUnicaseInfoChar(0x2165, 0x2175, 0x2165),
            new ObUnicaseInfoChar(0x2166, 0x2176, 0x2166),
            new ObUnicaseInfoChar(0x2167, 0x2177, 0x2167),
            new ObUnicaseInfoChar(0x2168, 0x2178, 0x2168),
            new ObUnicaseInfoChar(0x2169, 0x2179, 0x2169),
            new ObUnicaseInfoChar(0x216A, 0x217A, 0x216A),
            new ObUnicaseInfoChar(0x216B, 0x217B, 0x216B),
            new ObUnicaseInfoChar(0x216C, 0x217C, 0x216C),
            new ObUnicaseInfoChar(0x216D, 0x217D, 0x216D),
            new ObUnicaseInfoChar(0x216E, 0x217E, 0x216E),
            new ObUnicaseInfoChar(0x216F, 0x217F, 0x216F),
            new ObUnicaseInfoChar(0x2160, 0x2170, 0x2160),
            new ObUnicaseInfoChar(0x2161, 0x2171, 0x2161),
            new ObUnicaseInfoChar(0x2162, 0x2172, 0x2162),
            new ObUnicaseInfoChar(0x2163, 0x2173, 0x2163),
            new ObUnicaseInfoChar(0x2164, 0x2174, 0x2164),
            new ObUnicaseInfoChar(0x2165, 0x2175, 0x2165),
            new ObUnicaseInfoChar(0x2166, 0x2176, 0x2166),
            new ObUnicaseInfoChar(0x2167, 0x2177, 0x2167),
            new ObUnicaseInfoChar(0x2168, 0x2178, 0x2168),
            new ObUnicaseInfoChar(0x2169, 0x2179, 0x2169),
            new ObUnicaseInfoChar(0x216A, 0x217A, 0x216A),
            new ObUnicaseInfoChar(0x216B, 0x217B, 0x216B),
            new ObUnicaseInfoChar(0x216C, 0x217C, 0x216C),
            new ObUnicaseInfoChar(0x216D, 0x217D, 0x216D),
            new ObUnicaseInfoChar(0x216E, 0x217E, 0x216E),
            new ObUnicaseInfoChar(0x216F, 0x217F, 0x216F),
            new ObUnicaseInfoChar(0x2180, 0x2180, 0x2180),
            new ObUnicaseInfoChar(0x2181, 0x2181, 0x2181),
            new ObUnicaseInfoChar(0x2182, 0x2182, 0x2182),
            new ObUnicaseInfoChar(0x2183, 0x2183, 0x2183),
            new ObUnicaseInfoChar(0x2184, 0x2184, 0x2184),
            new ObUnicaseInfoChar(0x2185, 0x2185, 0x2185),
            new ObUnicaseInfoChar(0x2186, 0x2186, 0x2186),
            new ObUnicaseInfoChar(0x2187, 0x2187, 0x2187),
            new ObUnicaseInfoChar(0x2188, 0x2188, 0x2188),
            new ObUnicaseInfoChar(0x2189, 0x2189, 0x2189),
            new ObUnicaseInfoChar(0x218A, 0x218A, 0x218A),
            new ObUnicaseInfoChar(0x218B, 0x218B, 0x218B),
            new ObUnicaseInfoChar(0x218C, 0x218C, 0x218C),
            new ObUnicaseInfoChar(0x218D, 0x218D, 0x218D),
            new ObUnicaseInfoChar(0x218E, 0x218E, 0x218E),
            new ObUnicaseInfoChar(0x218F, 0x218F, 0x218F),
            new ObUnicaseInfoChar(0x2190, 0x2190, 0x2190),
            new ObUnicaseInfoChar(0x2191, 0x2191, 0x2191),
            new ObUnicaseInfoChar(0x2192, 0x2192, 0x2192),
            new ObUnicaseInfoChar(0x2193, 0x2193, 0x2193),
            new ObUnicaseInfoChar(0x2194, 0x2194, 0x2194),
            new ObUnicaseInfoChar(0x2195, 0x2195, 0x2195),
            new ObUnicaseInfoChar(0x2196, 0x2196, 0x2196),
            new ObUnicaseInfoChar(0x2197, 0x2197, 0x2197),
            new ObUnicaseInfoChar(0x2198, 0x2198, 0x2198),
            new ObUnicaseInfoChar(0x2199, 0x2199, 0x2199),
            new ObUnicaseInfoChar(0x219A, 0x219A, 0x219A),
            new ObUnicaseInfoChar(0x219B, 0x219B, 0x219B),
            new ObUnicaseInfoChar(0x219C, 0x219C, 0x219C),
            new ObUnicaseInfoChar(0x219D, 0x219D, 0x219D),
            new ObUnicaseInfoChar(0x219E, 0x219E, 0x219E),
            new ObUnicaseInfoChar(0x219F, 0x219F, 0x219F),
            new ObUnicaseInfoChar(0x21A0, 0x21A0, 0x21A0),
            new ObUnicaseInfoChar(0x21A1, 0x21A1, 0x21A1),
            new ObUnicaseInfoChar(0x21A2, 0x21A2, 0x21A2),
            new ObUnicaseInfoChar(0x21A3, 0x21A3, 0x21A3),
            new ObUnicaseInfoChar(0x21A4, 0x21A4, 0x21A4),
            new ObUnicaseInfoChar(0x21A5, 0x21A5, 0x21A5),
            new ObUnicaseInfoChar(0x21A6, 0x21A6, 0x21A6),
            new ObUnicaseInfoChar(0x21A7, 0x21A7, 0x21A7),
            new ObUnicaseInfoChar(0x21A8, 0x21A8, 0x21A8),
            new ObUnicaseInfoChar(0x21A9, 0x21A9, 0x21A9),
            new ObUnicaseInfoChar(0x21AA, 0x21AA, 0x21AA),
            new ObUnicaseInfoChar(0x21AB, 0x21AB, 0x21AB),
            new ObUnicaseInfoChar(0x21AC, 0x21AC, 0x21AC),
            new ObUnicaseInfoChar(0x21AD, 0x21AD, 0x21AD),
            new ObUnicaseInfoChar(0x21AE, 0x21AE, 0x21AE),
            new ObUnicaseInfoChar(0x21AF, 0x21AF, 0x21AF),
            new ObUnicaseInfoChar(0x21B0, 0x21B0, 0x21B0),
            new ObUnicaseInfoChar(0x21B1, 0x21B1, 0x21B1),
            new ObUnicaseInfoChar(0x21B2, 0x21B2, 0x21B2),
            new ObUnicaseInfoChar(0x21B3, 0x21B3, 0x21B3),
            new ObUnicaseInfoChar(0x21B4, 0x21B4, 0x21B4),
            new ObUnicaseInfoChar(0x21B5, 0x21B5, 0x21B5),
            new ObUnicaseInfoChar(0x21B6, 0x21B6, 0x21B6),
            new ObUnicaseInfoChar(0x21B7, 0x21B7, 0x21B7),
            new ObUnicaseInfoChar(0x21B8, 0x21B8, 0x21B8),
            new ObUnicaseInfoChar(0x21B9, 0x21B9, 0x21B9),
            new ObUnicaseInfoChar(0x21BA, 0x21BA, 0x21BA),
            new ObUnicaseInfoChar(0x21BB, 0x21BB, 0x21BB),
            new ObUnicaseInfoChar(0x21BC, 0x21BC, 0x21BC),
            new ObUnicaseInfoChar(0x21BD, 0x21BD, 0x21BD),
            new ObUnicaseInfoChar(0x21BE, 0x21BE, 0x21BE),
            new ObUnicaseInfoChar(0x21BF, 0x21BF, 0x21BF),
            new ObUnicaseInfoChar(0x21C0, 0x21C0, 0x21C0),
            new ObUnicaseInfoChar(0x21C1, 0x21C1, 0x21C1),
            new ObUnicaseInfoChar(0x21C2, 0x21C2, 0x21C2),
            new ObUnicaseInfoChar(0x21C3, 0x21C3, 0x21C3),
            new ObUnicaseInfoChar(0x21C4, 0x21C4, 0x21C4),
            new ObUnicaseInfoChar(0x21C5, 0x21C5, 0x21C5),
            new ObUnicaseInfoChar(0x21C6, 0x21C6, 0x21C6),
            new ObUnicaseInfoChar(0x21C7, 0x21C7, 0x21C7),
            new ObUnicaseInfoChar(0x21C8, 0x21C8, 0x21C8),
            new ObUnicaseInfoChar(0x21C9, 0x21C9, 0x21C9),
            new ObUnicaseInfoChar(0x21CA, 0x21CA, 0x21CA),
            new ObUnicaseInfoChar(0x21CB, 0x21CB, 0x21CB),
            new ObUnicaseInfoChar(0x21CC, 0x21CC, 0x21CC),
            new ObUnicaseInfoChar(0x21CD, 0x21CD, 0x21CD),
            new ObUnicaseInfoChar(0x21CE, 0x21CE, 0x21CE),
            new ObUnicaseInfoChar(0x21CF, 0x21CF, 0x21CF),
            new ObUnicaseInfoChar(0x21D0, 0x21D0, 0x21D0),
            new ObUnicaseInfoChar(0x21D1, 0x21D1, 0x21D1),
            new ObUnicaseInfoChar(0x21D2, 0x21D2, 0x21D2),
            new ObUnicaseInfoChar(0x21D3, 0x21D3, 0x21D3),
            new ObUnicaseInfoChar(0x21D4, 0x21D4, 0x21D4),
            new ObUnicaseInfoChar(0x21D5, 0x21D5, 0x21D5),
            new ObUnicaseInfoChar(0x21D6, 0x21D6, 0x21D6),
            new ObUnicaseInfoChar(0x21D7, 0x21D7, 0x21D7),
            new ObUnicaseInfoChar(0x21D8, 0x21D8, 0x21D8),
            new ObUnicaseInfoChar(0x21D9, 0x21D9, 0x21D9),
            new ObUnicaseInfoChar(0x21DA, 0x21DA, 0x21DA),
            new ObUnicaseInfoChar(0x21DB, 0x21DB, 0x21DB),
            new ObUnicaseInfoChar(0x21DC, 0x21DC, 0x21DC),
            new ObUnicaseInfoChar(0x21DD, 0x21DD, 0x21DD),
            new ObUnicaseInfoChar(0x21DE, 0x21DE, 0x21DE),
            new ObUnicaseInfoChar(0x21DF, 0x21DF, 0x21DF),
            new ObUnicaseInfoChar(0x21E0, 0x21E0, 0x21E0),
            new ObUnicaseInfoChar(0x21E1, 0x21E1, 0x21E1),
            new ObUnicaseInfoChar(0x21E2, 0x21E2, 0x21E2),
            new ObUnicaseInfoChar(0x21E3, 0x21E3, 0x21E3),
            new ObUnicaseInfoChar(0x21E4, 0x21E4, 0x21E4),
            new ObUnicaseInfoChar(0x21E5, 0x21E5, 0x21E5),
            new ObUnicaseInfoChar(0x21E6, 0x21E6, 0x21E6),
            new ObUnicaseInfoChar(0x21E7, 0x21E7, 0x21E7),
            new ObUnicaseInfoChar(0x21E8, 0x21E8, 0x21E8),
            new ObUnicaseInfoChar(0x21E9, 0x21E9, 0x21E9),
            new ObUnicaseInfoChar(0x21EA, 0x21EA, 0x21EA),
            new ObUnicaseInfoChar(0x21EB, 0x21EB, 0x21EB),
            new ObUnicaseInfoChar(0x21EC, 0x21EC, 0x21EC),
            new ObUnicaseInfoChar(0x21ED, 0x21ED, 0x21ED),
            new ObUnicaseInfoChar(0x21EE, 0x21EE, 0x21EE),
            new ObUnicaseInfoChar(0x21EF, 0x21EF, 0x21EF),
            new ObUnicaseInfoChar(0x21F0, 0x21F0, 0x21F0),
            new ObUnicaseInfoChar(0x21F1, 0x21F1, 0x21F1),
            new ObUnicaseInfoChar(0x21F2, 0x21F2, 0x21F2),
            new ObUnicaseInfoChar(0x21F3, 0x21F3, 0x21F3),
            new ObUnicaseInfoChar(0x21F4, 0x21F4, 0x21F4),
            new ObUnicaseInfoChar(0x21F5, 0x21F5, 0x21F5),
            new ObUnicaseInfoChar(0x21F6, 0x21F6, 0x21F6),
            new ObUnicaseInfoChar(0x21F7, 0x21F7, 0x21F7),
            new ObUnicaseInfoChar(0x21F8, 0x21F8, 0x21F8),
            new ObUnicaseInfoChar(0x21F9, 0x21F9, 0x21F9),
            new ObUnicaseInfoChar(0x21FA, 0x21FA, 0x21FA),
            new ObUnicaseInfoChar(0x21FB, 0x21FB, 0x21FB),
            new ObUnicaseInfoChar(0x21FC, 0x21FC, 0x21FC),
            new ObUnicaseInfoChar(0x21FD, 0x21FD, 0x21FD),
            new ObUnicaseInfoChar(0x21FE, 0x21FE, 0x21FE),
            new ObUnicaseInfoChar(0x21FF, 0x21FF, 0x21FF)          };

    public static ObUnicaseInfoChar[]   plane24                     = {
            new ObUnicaseInfoChar(0x2400, 0x2400, 0x2400),
            new ObUnicaseInfoChar(0x2401, 0x2401, 0x2401),
            new ObUnicaseInfoChar(0x2402, 0x2402, 0x2402),
            new ObUnicaseInfoChar(0x2403, 0x2403, 0x2403),
            new ObUnicaseInfoChar(0x2404, 0x2404, 0x2404),
            new ObUnicaseInfoChar(0x2405, 0x2405, 0x2405),
            new ObUnicaseInfoChar(0x2406, 0x2406, 0x2406),
            new ObUnicaseInfoChar(0x2407, 0x2407, 0x2407),
            new ObUnicaseInfoChar(0x2408, 0x2408, 0x2408),
            new ObUnicaseInfoChar(0x2409, 0x2409, 0x2409),
            new ObUnicaseInfoChar(0x240A, 0x240A, 0x240A),
            new ObUnicaseInfoChar(0x240B, 0x240B, 0x240B),
            new ObUnicaseInfoChar(0x240C, 0x240C, 0x240C),
            new ObUnicaseInfoChar(0x240D, 0x240D, 0x240D),
            new ObUnicaseInfoChar(0x240E, 0x240E, 0x240E),
            new ObUnicaseInfoChar(0x240F, 0x240F, 0x240F),
            new ObUnicaseInfoChar(0x2410, 0x2410, 0x2410),
            new ObUnicaseInfoChar(0x2411, 0x2411, 0x2411),
            new ObUnicaseInfoChar(0x2412, 0x2412, 0x2412),
            new ObUnicaseInfoChar(0x2413, 0x2413, 0x2413),
            new ObUnicaseInfoChar(0x2414, 0x2414, 0x2414),
            new ObUnicaseInfoChar(0x2415, 0x2415, 0x2415),
            new ObUnicaseInfoChar(0x2416, 0x2416, 0x2416),
            new ObUnicaseInfoChar(0x2417, 0x2417, 0x2417),
            new ObUnicaseInfoChar(0x2418, 0x2418, 0x2418),
            new ObUnicaseInfoChar(0x2419, 0x2419, 0x2419),
            new ObUnicaseInfoChar(0x241A, 0x241A, 0x241A),
            new ObUnicaseInfoChar(0x241B, 0x241B, 0x241B),
            new ObUnicaseInfoChar(0x241C, 0x241C, 0x241C),
            new ObUnicaseInfoChar(0x241D, 0x241D, 0x241D),
            new ObUnicaseInfoChar(0x241E, 0x241E, 0x241E),
            new ObUnicaseInfoChar(0x241F, 0x241F, 0x241F),
            new ObUnicaseInfoChar(0x2420, 0x2420, 0x2420),
            new ObUnicaseInfoChar(0x2421, 0x2421, 0x2421),
            new ObUnicaseInfoChar(0x2422, 0x2422, 0x2422),
            new ObUnicaseInfoChar(0x2423, 0x2423, 0x2423),
            new ObUnicaseInfoChar(0x2424, 0x2424, 0x2424),
            new ObUnicaseInfoChar(0x2425, 0x2425, 0x2425),
            new ObUnicaseInfoChar(0x2426, 0x2426, 0x2426),
            new ObUnicaseInfoChar(0x2427, 0x2427, 0x2427),
            new ObUnicaseInfoChar(0x2428, 0x2428, 0x2428),
            new ObUnicaseInfoChar(0x2429, 0x2429, 0x2429),
            new ObUnicaseInfoChar(0x242A, 0x242A, 0x242A),
            new ObUnicaseInfoChar(0x242B, 0x242B, 0x242B),
            new ObUnicaseInfoChar(0x242C, 0x242C, 0x242C),
            new ObUnicaseInfoChar(0x242D, 0x242D, 0x242D),
            new ObUnicaseInfoChar(0x242E, 0x242E, 0x242E),
            new ObUnicaseInfoChar(0x242F, 0x242F, 0x242F),
            new ObUnicaseInfoChar(0x2430, 0x2430, 0x2430),
            new ObUnicaseInfoChar(0x2431, 0x2431, 0x2431),
            new ObUnicaseInfoChar(0x2432, 0x2432, 0x2432),
            new ObUnicaseInfoChar(0x2433, 0x2433, 0x2433),
            new ObUnicaseInfoChar(0x2434, 0x2434, 0x2434),
            new ObUnicaseInfoChar(0x2435, 0x2435, 0x2435),
            new ObUnicaseInfoChar(0x2436, 0x2436, 0x2436),
            new ObUnicaseInfoChar(0x2437, 0x2437, 0x2437),
            new ObUnicaseInfoChar(0x2438, 0x2438, 0x2438),
            new ObUnicaseInfoChar(0x2439, 0x2439, 0x2439),
            new ObUnicaseInfoChar(0x243A, 0x243A, 0x243A),
            new ObUnicaseInfoChar(0x243B, 0x243B, 0x243B),
            new ObUnicaseInfoChar(0x243C, 0x243C, 0x243C),
            new ObUnicaseInfoChar(0x243D, 0x243D, 0x243D),
            new ObUnicaseInfoChar(0x243E, 0x243E, 0x243E),
            new ObUnicaseInfoChar(0x243F, 0x243F, 0x243F),
            new ObUnicaseInfoChar(0x2440, 0x2440, 0x2440),
            new ObUnicaseInfoChar(0x2441, 0x2441, 0x2441),
            new ObUnicaseInfoChar(0x2442, 0x2442, 0x2442),
            new ObUnicaseInfoChar(0x2443, 0x2443, 0x2443),
            new ObUnicaseInfoChar(0x2444, 0x2444, 0x2444),
            new ObUnicaseInfoChar(0x2445, 0x2445, 0x2445),
            new ObUnicaseInfoChar(0x2446, 0x2446, 0x2446),
            new ObUnicaseInfoChar(0x2447, 0x2447, 0x2447),
            new ObUnicaseInfoChar(0x2448, 0x2448, 0x2448),
            new ObUnicaseInfoChar(0x2449, 0x2449, 0x2449),
            new ObUnicaseInfoChar(0x244A, 0x244A, 0x244A),
            new ObUnicaseInfoChar(0x244B, 0x244B, 0x244B),
            new ObUnicaseInfoChar(0x244C, 0x244C, 0x244C),
            new ObUnicaseInfoChar(0x244D, 0x244D, 0x244D),
            new ObUnicaseInfoChar(0x244E, 0x244E, 0x244E),
            new ObUnicaseInfoChar(0x244F, 0x244F, 0x244F),
            new ObUnicaseInfoChar(0x2450, 0x2450, 0x2450),
            new ObUnicaseInfoChar(0x2451, 0x2451, 0x2451),
            new ObUnicaseInfoChar(0x2452, 0x2452, 0x2452),
            new ObUnicaseInfoChar(0x2453, 0x2453, 0x2453),
            new ObUnicaseInfoChar(0x2454, 0x2454, 0x2454),
            new ObUnicaseInfoChar(0x2455, 0x2455, 0x2455),
            new ObUnicaseInfoChar(0x2456, 0x2456, 0x2456),
            new ObUnicaseInfoChar(0x2457, 0x2457, 0x2457),
            new ObUnicaseInfoChar(0x2458, 0x2458, 0x2458),
            new ObUnicaseInfoChar(0x2459, 0x2459, 0x2459),
            new ObUnicaseInfoChar(0x245A, 0x245A, 0x245A),
            new ObUnicaseInfoChar(0x245B, 0x245B, 0x245B),
            new ObUnicaseInfoChar(0x245C, 0x245C, 0x245C),
            new ObUnicaseInfoChar(0x245D, 0x245D, 0x245D),
            new ObUnicaseInfoChar(0x245E, 0x245E, 0x245E),
            new ObUnicaseInfoChar(0x245F, 0x245F, 0x245F),
            new ObUnicaseInfoChar(0x2460, 0x2460, 0x2460),
            new ObUnicaseInfoChar(0x2461, 0x2461, 0x2461),
            new ObUnicaseInfoChar(0x2462, 0x2462, 0x2462),
            new ObUnicaseInfoChar(0x2463, 0x2463, 0x2463),
            new ObUnicaseInfoChar(0x2464, 0x2464, 0x2464),
            new ObUnicaseInfoChar(0x2465, 0x2465, 0x2465),
            new ObUnicaseInfoChar(0x2466, 0x2466, 0x2466),
            new ObUnicaseInfoChar(0x2467, 0x2467, 0x2467),
            new ObUnicaseInfoChar(0x2468, 0x2468, 0x2468),
            new ObUnicaseInfoChar(0x2469, 0x2469, 0x2469),
            new ObUnicaseInfoChar(0x246A, 0x246A, 0x246A),
            new ObUnicaseInfoChar(0x246B, 0x246B, 0x246B),
            new ObUnicaseInfoChar(0x246C, 0x246C, 0x246C),
            new ObUnicaseInfoChar(0x246D, 0x246D, 0x246D),
            new ObUnicaseInfoChar(0x246E, 0x246E, 0x246E),
            new ObUnicaseInfoChar(0x246F, 0x246F, 0x246F),
            new ObUnicaseInfoChar(0x2470, 0x2470, 0x2470),
            new ObUnicaseInfoChar(0x2471, 0x2471, 0x2471),
            new ObUnicaseInfoChar(0x2472, 0x2472, 0x2472),
            new ObUnicaseInfoChar(0x2473, 0x2473, 0x2473),
            new ObUnicaseInfoChar(0x2474, 0x2474, 0x2474),
            new ObUnicaseInfoChar(0x2475, 0x2475, 0x2475),
            new ObUnicaseInfoChar(0x2476, 0x2476, 0x2476),
            new ObUnicaseInfoChar(0x2477, 0x2477, 0x2477),
            new ObUnicaseInfoChar(0x2478, 0x2478, 0x2478),
            new ObUnicaseInfoChar(0x2479, 0x2479, 0x2479),
            new ObUnicaseInfoChar(0x247A, 0x247A, 0x247A),
            new ObUnicaseInfoChar(0x247B, 0x247B, 0x247B),
            new ObUnicaseInfoChar(0x247C, 0x247C, 0x247C),
            new ObUnicaseInfoChar(0x247D, 0x247D, 0x247D),
            new ObUnicaseInfoChar(0x247E, 0x247E, 0x247E),
            new ObUnicaseInfoChar(0x247F, 0x247F, 0x247F),
            new ObUnicaseInfoChar(0x2480, 0x2480, 0x2480),
            new ObUnicaseInfoChar(0x2481, 0x2481, 0x2481),
            new ObUnicaseInfoChar(0x2482, 0x2482, 0x2482),
            new ObUnicaseInfoChar(0x2483, 0x2483, 0x2483),
            new ObUnicaseInfoChar(0x2484, 0x2484, 0x2484),
            new ObUnicaseInfoChar(0x2485, 0x2485, 0x2485),
            new ObUnicaseInfoChar(0x2486, 0x2486, 0x2486),
            new ObUnicaseInfoChar(0x2487, 0x2487, 0x2487),
            new ObUnicaseInfoChar(0x2488, 0x2488, 0x2488),
            new ObUnicaseInfoChar(0x2489, 0x2489, 0x2489),
            new ObUnicaseInfoChar(0x248A, 0x248A, 0x248A),
            new ObUnicaseInfoChar(0x248B, 0x248B, 0x248B),
            new ObUnicaseInfoChar(0x248C, 0x248C, 0x248C),
            new ObUnicaseInfoChar(0x248D, 0x248D, 0x248D),
            new ObUnicaseInfoChar(0x248E, 0x248E, 0x248E),
            new ObUnicaseInfoChar(0x248F, 0x248F, 0x248F),
            new ObUnicaseInfoChar(0x2490, 0x2490, 0x2490),
            new ObUnicaseInfoChar(0x2491, 0x2491, 0x2491),
            new ObUnicaseInfoChar(0x2492, 0x2492, 0x2492),
            new ObUnicaseInfoChar(0x2493, 0x2493, 0x2493),
            new ObUnicaseInfoChar(0x2494, 0x2494, 0x2494),
            new ObUnicaseInfoChar(0x2495, 0x2495, 0x2495),
            new ObUnicaseInfoChar(0x2496, 0x2496, 0x2496),
            new ObUnicaseInfoChar(0x2497, 0x2497, 0x2497),
            new ObUnicaseInfoChar(0x2498, 0x2498, 0x2498),
            new ObUnicaseInfoChar(0x2499, 0x2499, 0x2499),
            new ObUnicaseInfoChar(0x249A, 0x249A, 0x249A),
            new ObUnicaseInfoChar(0x249B, 0x249B, 0x249B),
            new ObUnicaseInfoChar(0x249C, 0x249C, 0x249C),
            new ObUnicaseInfoChar(0x249D, 0x249D, 0x249D),
            new ObUnicaseInfoChar(0x249E, 0x249E, 0x249E),
            new ObUnicaseInfoChar(0x249F, 0x249F, 0x249F),
            new ObUnicaseInfoChar(0x24A0, 0x24A0, 0x24A0),
            new ObUnicaseInfoChar(0x24A1, 0x24A1, 0x24A1),
            new ObUnicaseInfoChar(0x24A2, 0x24A2, 0x24A2),
            new ObUnicaseInfoChar(0x24A3, 0x24A3, 0x24A3),
            new ObUnicaseInfoChar(0x24A4, 0x24A4, 0x24A4),
            new ObUnicaseInfoChar(0x24A5, 0x24A5, 0x24A5),
            new ObUnicaseInfoChar(0x24A6, 0x24A6, 0x24A6),
            new ObUnicaseInfoChar(0x24A7, 0x24A7, 0x24A7),
            new ObUnicaseInfoChar(0x24A8, 0x24A8, 0x24A8),
            new ObUnicaseInfoChar(0x24A9, 0x24A9, 0x24A9),
            new ObUnicaseInfoChar(0x24AA, 0x24AA, 0x24AA),
            new ObUnicaseInfoChar(0x24AB, 0x24AB, 0x24AB),
            new ObUnicaseInfoChar(0x24AC, 0x24AC, 0x24AC),
            new ObUnicaseInfoChar(0x24AD, 0x24AD, 0x24AD),
            new ObUnicaseInfoChar(0x24AE, 0x24AE, 0x24AE),
            new ObUnicaseInfoChar(0x24AF, 0x24AF, 0x24AF),
            new ObUnicaseInfoChar(0x24B0, 0x24B0, 0x24B0),
            new ObUnicaseInfoChar(0x24B1, 0x24B1, 0x24B1),
            new ObUnicaseInfoChar(0x24B2, 0x24B2, 0x24B2),
            new ObUnicaseInfoChar(0x24B3, 0x24B3, 0x24B3),
            new ObUnicaseInfoChar(0x24B4, 0x24B4, 0x24B4),
            new ObUnicaseInfoChar(0x24B5, 0x24B5, 0x24B5),
            new ObUnicaseInfoChar(0x24B6, 0x24D0, 0x24B6),
            new ObUnicaseInfoChar(0x24B7, 0x24D1, 0x24B7),
            new ObUnicaseInfoChar(0x24B8, 0x24D2, 0x24B8),
            new ObUnicaseInfoChar(0x24B9, 0x24D3, 0x24B9),
            new ObUnicaseInfoChar(0x24BA, 0x24D4, 0x24BA),
            new ObUnicaseInfoChar(0x24BB, 0x24D5, 0x24BB),
            new ObUnicaseInfoChar(0x24BC, 0x24D6, 0x24BC),
            new ObUnicaseInfoChar(0x24BD, 0x24D7, 0x24BD),
            new ObUnicaseInfoChar(0x24BE, 0x24D8, 0x24BE),
            new ObUnicaseInfoChar(0x24BF, 0x24D9, 0x24BF),
            new ObUnicaseInfoChar(0x24C0, 0x24DA, 0x24C0),
            new ObUnicaseInfoChar(0x24C1, 0x24DB, 0x24C1),
            new ObUnicaseInfoChar(0x24C2, 0x24DC, 0x24C2),
            new ObUnicaseInfoChar(0x24C3, 0x24DD, 0x24C3),
            new ObUnicaseInfoChar(0x24C4, 0x24DE, 0x24C4),
            new ObUnicaseInfoChar(0x24C5, 0x24DF, 0x24C5),
            new ObUnicaseInfoChar(0x24C6, 0x24E0, 0x24C6),
            new ObUnicaseInfoChar(0x24C7, 0x24E1, 0x24C7),
            new ObUnicaseInfoChar(0x24C8, 0x24E2, 0x24C8),
            new ObUnicaseInfoChar(0x24C9, 0x24E3, 0x24C9),
            new ObUnicaseInfoChar(0x24CA, 0x24E4, 0x24CA),
            new ObUnicaseInfoChar(0x24CB, 0x24E5, 0x24CB),
            new ObUnicaseInfoChar(0x24CC, 0x24E6, 0x24CC),
            new ObUnicaseInfoChar(0x24CD, 0x24E7, 0x24CD),
            new ObUnicaseInfoChar(0x24CE, 0x24E8, 0x24CE),
            new ObUnicaseInfoChar(0x24CF, 0x24E9, 0x24CF),
            new ObUnicaseInfoChar(0x24B6, 0x24D0, 0x24B6),
            new ObUnicaseInfoChar(0x24B7, 0x24D1, 0x24B7),
            new ObUnicaseInfoChar(0x24B8, 0x24D2, 0x24B8),
            new ObUnicaseInfoChar(0x24B9, 0x24D3, 0x24B9),
            new ObUnicaseInfoChar(0x24BA, 0x24D4, 0x24BA),
            new ObUnicaseInfoChar(0x24BB, 0x24D5, 0x24BB),
            new ObUnicaseInfoChar(0x24BC, 0x24D6, 0x24BC),
            new ObUnicaseInfoChar(0x24BD, 0x24D7, 0x24BD),
            new ObUnicaseInfoChar(0x24BE, 0x24D8, 0x24BE),
            new ObUnicaseInfoChar(0x24BF, 0x24D9, 0x24BF),
            new ObUnicaseInfoChar(0x24C0, 0x24DA, 0x24C0),
            new ObUnicaseInfoChar(0x24C1, 0x24DB, 0x24C1),
            new ObUnicaseInfoChar(0x24C2, 0x24DC, 0x24C2),
            new ObUnicaseInfoChar(0x24C3, 0x24DD, 0x24C3),
            new ObUnicaseInfoChar(0x24C4, 0x24DE, 0x24C4),
            new ObUnicaseInfoChar(0x24C5, 0x24DF, 0x24C5),
            new ObUnicaseInfoChar(0x24C6, 0x24E0, 0x24C6),
            new ObUnicaseInfoChar(0x24C7, 0x24E1, 0x24C7),
            new ObUnicaseInfoChar(0x24C8, 0x24E2, 0x24C8),
            new ObUnicaseInfoChar(0x24C9, 0x24E3, 0x24C9),
            new ObUnicaseInfoChar(0x24CA, 0x24E4, 0x24CA),
            new ObUnicaseInfoChar(0x24CB, 0x24E5, 0x24CB),
            new ObUnicaseInfoChar(0x24CC, 0x24E6, 0x24CC),
            new ObUnicaseInfoChar(0x24CD, 0x24E7, 0x24CD),
            new ObUnicaseInfoChar(0x24CE, 0x24E8, 0x24CE),
            new ObUnicaseInfoChar(0x24CF, 0x24E9, 0x24CF),
            new ObUnicaseInfoChar(0x24EA, 0x24EA, 0x24EA),
            new ObUnicaseInfoChar(0x24EB, 0x24EB, 0x24EB),
            new ObUnicaseInfoChar(0x24EC, 0x24EC, 0x24EC),
            new ObUnicaseInfoChar(0x24ED, 0x24ED, 0x24ED),
            new ObUnicaseInfoChar(0x24EE, 0x24EE, 0x24EE),
            new ObUnicaseInfoChar(0x24EF, 0x24EF, 0x24EF),
            new ObUnicaseInfoChar(0x24F0, 0x24F0, 0x24F0),
            new ObUnicaseInfoChar(0x24F1, 0x24F1, 0x24F1),
            new ObUnicaseInfoChar(0x24F2, 0x24F2, 0x24F2),
            new ObUnicaseInfoChar(0x24F3, 0x24F3, 0x24F3),
            new ObUnicaseInfoChar(0x24F4, 0x24F4, 0x24F4),
            new ObUnicaseInfoChar(0x24F5, 0x24F5, 0x24F5),
            new ObUnicaseInfoChar(0x24F6, 0x24F6, 0x24F6),
            new ObUnicaseInfoChar(0x24F7, 0x24F7, 0x24F7),
            new ObUnicaseInfoChar(0x24F8, 0x24F8, 0x24F8),
            new ObUnicaseInfoChar(0x24F9, 0x24F9, 0x24F9),
            new ObUnicaseInfoChar(0x24FA, 0x24FA, 0x24FA),
            new ObUnicaseInfoChar(0x24FB, 0x24FB, 0x24FB),
            new ObUnicaseInfoChar(0x24FC, 0x24FC, 0x24FC),
            new ObUnicaseInfoChar(0x24FD, 0x24FD, 0x24FD),
            new ObUnicaseInfoChar(0x24FE, 0x24FE, 0x24FE),
            new ObUnicaseInfoChar(0x24FF, 0x24FF, 0x24FF)          };

    public static ObUnicaseInfoChar[]   planeFF                     = {
            new ObUnicaseInfoChar(0xFF00, 0xFF00, 0xFF00),
            new ObUnicaseInfoChar(0xFF01, 0xFF01, 0xFF01),
            new ObUnicaseInfoChar(0xFF02, 0xFF02, 0xFF02),
            new ObUnicaseInfoChar(0xFF03, 0xFF03, 0xFF03),
            new ObUnicaseInfoChar(0xFF04, 0xFF04, 0xFF04),
            new ObUnicaseInfoChar(0xFF05, 0xFF05, 0xFF05),
            new ObUnicaseInfoChar(0xFF06, 0xFF06, 0xFF06),
            new ObUnicaseInfoChar(0xFF07, 0xFF07, 0xFF07),
            new ObUnicaseInfoChar(0xFF08, 0xFF08, 0xFF08),
            new ObUnicaseInfoChar(0xFF09, 0xFF09, 0xFF09),
            new ObUnicaseInfoChar(0xFF0A, 0xFF0A, 0xFF0A),
            new ObUnicaseInfoChar(0xFF0B, 0xFF0B, 0xFF0B),
            new ObUnicaseInfoChar(0xFF0C, 0xFF0C, 0xFF0C),
            new ObUnicaseInfoChar(0xFF0D, 0xFF0D, 0xFF0D),
            new ObUnicaseInfoChar(0xFF0E, 0xFF0E, 0xFF0E),
            new ObUnicaseInfoChar(0xFF0F, 0xFF0F, 0xFF0F),
            new ObUnicaseInfoChar(0xFF10, 0xFF10, 0xFF10),
            new ObUnicaseInfoChar(0xFF11, 0xFF11, 0xFF11),
            new ObUnicaseInfoChar(0xFF12, 0xFF12, 0xFF12),
            new ObUnicaseInfoChar(0xFF13, 0xFF13, 0xFF13),
            new ObUnicaseInfoChar(0xFF14, 0xFF14, 0xFF14),
            new ObUnicaseInfoChar(0xFF15, 0xFF15, 0xFF15),
            new ObUnicaseInfoChar(0xFF16, 0xFF16, 0xFF16),
            new ObUnicaseInfoChar(0xFF17, 0xFF17, 0xFF17),
            new ObUnicaseInfoChar(0xFF18, 0xFF18, 0xFF18),
            new ObUnicaseInfoChar(0xFF19, 0xFF19, 0xFF19),
            new ObUnicaseInfoChar(0xFF1A, 0xFF1A, 0xFF1A),
            new ObUnicaseInfoChar(0xFF1B, 0xFF1B, 0xFF1B),
            new ObUnicaseInfoChar(0xFF1C, 0xFF1C, 0xFF1C),
            new ObUnicaseInfoChar(0xFF1D, 0xFF1D, 0xFF1D),
            new ObUnicaseInfoChar(0xFF1E, 0xFF1E, 0xFF1E),
            new ObUnicaseInfoChar(0xFF1F, 0xFF1F, 0xFF1F),
            new ObUnicaseInfoChar(0xFF20, 0xFF20, 0xFF20),
            new ObUnicaseInfoChar(0xFF21, 0xFF41, 0xFF21),
            new ObUnicaseInfoChar(0xFF22, 0xFF42, 0xFF22),
            new ObUnicaseInfoChar(0xFF23, 0xFF43, 0xFF23),
            new ObUnicaseInfoChar(0xFF24, 0xFF44, 0xFF24),
            new ObUnicaseInfoChar(0xFF25, 0xFF45, 0xFF25),
            new ObUnicaseInfoChar(0xFF26, 0xFF46, 0xFF26),
            new ObUnicaseInfoChar(0xFF27, 0xFF47, 0xFF27),
            new ObUnicaseInfoChar(0xFF28, 0xFF48, 0xFF28),
            new ObUnicaseInfoChar(0xFF29, 0xFF49, 0xFF29),
            new ObUnicaseInfoChar(0xFF2A, 0xFF4A, 0xFF2A),
            new ObUnicaseInfoChar(0xFF2B, 0xFF4B, 0xFF2B),
            new ObUnicaseInfoChar(0xFF2C, 0xFF4C, 0xFF2C),
            new ObUnicaseInfoChar(0xFF2D, 0xFF4D, 0xFF2D),
            new ObUnicaseInfoChar(0xFF2E, 0xFF4E, 0xFF2E),
            new ObUnicaseInfoChar(0xFF2F, 0xFF4F, 0xFF2F),
            new ObUnicaseInfoChar(0xFF30, 0xFF50, 0xFF30),
            new ObUnicaseInfoChar(0xFF31, 0xFF51, 0xFF31),
            new ObUnicaseInfoChar(0xFF32, 0xFF52, 0xFF32),
            new ObUnicaseInfoChar(0xFF33, 0xFF53, 0xFF33),
            new ObUnicaseInfoChar(0xFF34, 0xFF54, 0xFF34),
            new ObUnicaseInfoChar(0xFF35, 0xFF55, 0xFF35),
            new ObUnicaseInfoChar(0xFF36, 0xFF56, 0xFF36),
            new ObUnicaseInfoChar(0xFF37, 0xFF57, 0xFF37),
            new ObUnicaseInfoChar(0xFF38, 0xFF58, 0xFF38),
            new ObUnicaseInfoChar(0xFF39, 0xFF59, 0xFF39),
            new ObUnicaseInfoChar(0xFF3A, 0xFF5A, 0xFF3A),
            new ObUnicaseInfoChar(0xFF3B, 0xFF3B, 0xFF3B),
            new ObUnicaseInfoChar(0xFF3C, 0xFF3C, 0xFF3C),
            new ObUnicaseInfoChar(0xFF3D, 0xFF3D, 0xFF3D),
            new ObUnicaseInfoChar(0xFF3E, 0xFF3E, 0xFF3E),
            new ObUnicaseInfoChar(0xFF3F, 0xFF3F, 0xFF3F),
            new ObUnicaseInfoChar(0xFF40, 0xFF40, 0xFF40),
            new ObUnicaseInfoChar(0xFF21, 0xFF41, 0xFF21),
            new ObUnicaseInfoChar(0xFF22, 0xFF42, 0xFF22),
            new ObUnicaseInfoChar(0xFF23, 0xFF43, 0xFF23),
            new ObUnicaseInfoChar(0xFF24, 0xFF44, 0xFF24),
            new ObUnicaseInfoChar(0xFF25, 0xFF45, 0xFF25),
            new ObUnicaseInfoChar(0xFF26, 0xFF46, 0xFF26),
            new ObUnicaseInfoChar(0xFF27, 0xFF47, 0xFF27),
            new ObUnicaseInfoChar(0xFF28, 0xFF48, 0xFF28),
            new ObUnicaseInfoChar(0xFF29, 0xFF49, 0xFF29),
            new ObUnicaseInfoChar(0xFF2A, 0xFF4A, 0xFF2A),
            new ObUnicaseInfoChar(0xFF2B, 0xFF4B, 0xFF2B),
            new ObUnicaseInfoChar(0xFF2C, 0xFF4C, 0xFF2C),
            new ObUnicaseInfoChar(0xFF2D, 0xFF4D, 0xFF2D),
            new ObUnicaseInfoChar(0xFF2E, 0xFF4E, 0xFF2E),
            new ObUnicaseInfoChar(0xFF2F, 0xFF4F, 0xFF2F),
            new ObUnicaseInfoChar(0xFF30, 0xFF50, 0xFF30),
            new ObUnicaseInfoChar(0xFF31, 0xFF51, 0xFF31),
            new ObUnicaseInfoChar(0xFF32, 0xFF52, 0xFF32),
            new ObUnicaseInfoChar(0xFF33, 0xFF53, 0xFF33),
            new ObUnicaseInfoChar(0xFF34, 0xFF54, 0xFF34),
            new ObUnicaseInfoChar(0xFF35, 0xFF55, 0xFF35),
            new ObUnicaseInfoChar(0xFF36, 0xFF56, 0xFF36),
            new ObUnicaseInfoChar(0xFF37, 0xFF57, 0xFF37),
            new ObUnicaseInfoChar(0xFF38, 0xFF58, 0xFF38),
            new ObUnicaseInfoChar(0xFF39, 0xFF59, 0xFF39),
            new ObUnicaseInfoChar(0xFF3A, 0xFF5A, 0xFF3A),
            new ObUnicaseInfoChar(0xFF5B, 0xFF5B, 0xFF5B),
            new ObUnicaseInfoChar(0xFF5C, 0xFF5C, 0xFF5C),
            new ObUnicaseInfoChar(0xFF5D, 0xFF5D, 0xFF5D),
            new ObUnicaseInfoChar(0xFF5E, 0xFF5E, 0xFF5E),
            new ObUnicaseInfoChar(0xFF5F, 0xFF5F, 0xFF5F),
            new ObUnicaseInfoChar(0xFF60, 0xFF60, 0xFF60),
            new ObUnicaseInfoChar(0xFF61, 0xFF61, 0xFF61),
            new ObUnicaseInfoChar(0xFF62, 0xFF62, 0xFF62),
            new ObUnicaseInfoChar(0xFF63, 0xFF63, 0xFF63),
            new ObUnicaseInfoChar(0xFF64, 0xFF64, 0xFF64),
            new ObUnicaseInfoChar(0xFF65, 0xFF65, 0xFF65),
            new ObUnicaseInfoChar(0xFF66, 0xFF66, 0xFF66),
            new ObUnicaseInfoChar(0xFF67, 0xFF67, 0xFF67),
            new ObUnicaseInfoChar(0xFF68, 0xFF68, 0xFF68),
            new ObUnicaseInfoChar(0xFF69, 0xFF69, 0xFF69),
            new ObUnicaseInfoChar(0xFF6A, 0xFF6A, 0xFF6A),
            new ObUnicaseInfoChar(0xFF6B, 0xFF6B, 0xFF6B),
            new ObUnicaseInfoChar(0xFF6C, 0xFF6C, 0xFF6C),
            new ObUnicaseInfoChar(0xFF6D, 0xFF6D, 0xFF6D),
            new ObUnicaseInfoChar(0xFF6E, 0xFF6E, 0xFF6E),
            new ObUnicaseInfoChar(0xFF6F, 0xFF6F, 0xFF6F),
            new ObUnicaseInfoChar(0xFF70, 0xFF70, 0xFF70),
            new ObUnicaseInfoChar(0xFF71, 0xFF71, 0xFF71),
            new ObUnicaseInfoChar(0xFF72, 0xFF72, 0xFF72),
            new ObUnicaseInfoChar(0xFF73, 0xFF73, 0xFF73),
            new ObUnicaseInfoChar(0xFF74, 0xFF74, 0xFF74),
            new ObUnicaseInfoChar(0xFF75, 0xFF75, 0xFF75),
            new ObUnicaseInfoChar(0xFF76, 0xFF76, 0xFF76),
            new ObUnicaseInfoChar(0xFF77, 0xFF77, 0xFF77),
            new ObUnicaseInfoChar(0xFF78, 0xFF78, 0xFF78),
            new ObUnicaseInfoChar(0xFF79, 0xFF79, 0xFF79),
            new ObUnicaseInfoChar(0xFF7A, 0xFF7A, 0xFF7A),
            new ObUnicaseInfoChar(0xFF7B, 0xFF7B, 0xFF7B),
            new ObUnicaseInfoChar(0xFF7C, 0xFF7C, 0xFF7C),
            new ObUnicaseInfoChar(0xFF7D, 0xFF7D, 0xFF7D),
            new ObUnicaseInfoChar(0xFF7E, 0xFF7E, 0xFF7E),
            new ObUnicaseInfoChar(0xFF7F, 0xFF7F, 0xFF7F),
            new ObUnicaseInfoChar(0xFF80, 0xFF80, 0xFF80),
            new ObUnicaseInfoChar(0xFF81, 0xFF81, 0xFF81),
            new ObUnicaseInfoChar(0xFF82, 0xFF82, 0xFF82),
            new ObUnicaseInfoChar(0xFF83, 0xFF83, 0xFF83),
            new ObUnicaseInfoChar(0xFF84, 0xFF84, 0xFF84),
            new ObUnicaseInfoChar(0xFF85, 0xFF85, 0xFF85),
            new ObUnicaseInfoChar(0xFF86, 0xFF86, 0xFF86),
            new ObUnicaseInfoChar(0xFF87, 0xFF87, 0xFF87),
            new ObUnicaseInfoChar(0xFF88, 0xFF88, 0xFF88),
            new ObUnicaseInfoChar(0xFF89, 0xFF89, 0xFF89),
            new ObUnicaseInfoChar(0xFF8A, 0xFF8A, 0xFF8A),
            new ObUnicaseInfoChar(0xFF8B, 0xFF8B, 0xFF8B),
            new ObUnicaseInfoChar(0xFF8C, 0xFF8C, 0xFF8C),
            new ObUnicaseInfoChar(0xFF8D, 0xFF8D, 0xFF8D),
            new ObUnicaseInfoChar(0xFF8E, 0xFF8E, 0xFF8E),
            new ObUnicaseInfoChar(0xFF8F, 0xFF8F, 0xFF8F),
            new ObUnicaseInfoChar(0xFF90, 0xFF90, 0xFF90),
            new ObUnicaseInfoChar(0xFF91, 0xFF91, 0xFF91),
            new ObUnicaseInfoChar(0xFF92, 0xFF92, 0xFF92),
            new ObUnicaseInfoChar(0xFF93, 0xFF93, 0xFF93),
            new ObUnicaseInfoChar(0xFF94, 0xFF94, 0xFF94),
            new ObUnicaseInfoChar(0xFF95, 0xFF95, 0xFF95),
            new ObUnicaseInfoChar(0xFF96, 0xFF96, 0xFF96),
            new ObUnicaseInfoChar(0xFF97, 0xFF97, 0xFF97),
            new ObUnicaseInfoChar(0xFF98, 0xFF98, 0xFF98),
            new ObUnicaseInfoChar(0xFF99, 0xFF99, 0xFF99),
            new ObUnicaseInfoChar(0xFF9A, 0xFF9A, 0xFF9A),
            new ObUnicaseInfoChar(0xFF9B, 0xFF9B, 0xFF9B),
            new ObUnicaseInfoChar(0xFF9C, 0xFF9C, 0xFF9C),
            new ObUnicaseInfoChar(0xFF9D, 0xFF9D, 0xFF9D),
            new ObUnicaseInfoChar(0xFF9E, 0xFF9E, 0xFF9E),
            new ObUnicaseInfoChar(0xFF9F, 0xFF9F, 0xFF9F),
            new ObUnicaseInfoChar(0xFFA0, 0xFFA0, 0xFFA0),
            new ObUnicaseInfoChar(0xFFA1, 0xFFA1, 0xFFA1),
            new ObUnicaseInfoChar(0xFFA2, 0xFFA2, 0xFFA2),
            new ObUnicaseInfoChar(0xFFA3, 0xFFA3, 0xFFA3),
            new ObUnicaseInfoChar(0xFFA4, 0xFFA4, 0xFFA4),
            new ObUnicaseInfoChar(0xFFA5, 0xFFA5, 0xFFA5),
            new ObUnicaseInfoChar(0xFFA6, 0xFFA6, 0xFFA6),
            new ObUnicaseInfoChar(0xFFA7, 0xFFA7, 0xFFA7),
            new ObUnicaseInfoChar(0xFFA8, 0xFFA8, 0xFFA8),
            new ObUnicaseInfoChar(0xFFA9, 0xFFA9, 0xFFA9),
            new ObUnicaseInfoChar(0xFFAA, 0xFFAA, 0xFFAA),
            new ObUnicaseInfoChar(0xFFAB, 0xFFAB, 0xFFAB),
            new ObUnicaseInfoChar(0xFFAC, 0xFFAC, 0xFFAC),
            new ObUnicaseInfoChar(0xFFAD, 0xFFAD, 0xFFAD),
            new ObUnicaseInfoChar(0xFFAE, 0xFFAE, 0xFFAE),
            new ObUnicaseInfoChar(0xFFAF, 0xFFAF, 0xFFAF),
            new ObUnicaseInfoChar(0xFFB0, 0xFFB0, 0xFFB0),
            new ObUnicaseInfoChar(0xFFB1, 0xFFB1, 0xFFB1),
            new ObUnicaseInfoChar(0xFFB2, 0xFFB2, 0xFFB2),
            new ObUnicaseInfoChar(0xFFB3, 0xFFB3, 0xFFB3),
            new ObUnicaseInfoChar(0xFFB4, 0xFFB4, 0xFFB4),
            new ObUnicaseInfoChar(0xFFB5, 0xFFB5, 0xFFB5),
            new ObUnicaseInfoChar(0xFFB6, 0xFFB6, 0xFFB6),
            new ObUnicaseInfoChar(0xFFB7, 0xFFB7, 0xFFB7),
            new ObUnicaseInfoChar(0xFFB8, 0xFFB8, 0xFFB8),
            new ObUnicaseInfoChar(0xFFB9, 0xFFB9, 0xFFB9),
            new ObUnicaseInfoChar(0xFFBA, 0xFFBA, 0xFFBA),
            new ObUnicaseInfoChar(0xFFBB, 0xFFBB, 0xFFBB),
            new ObUnicaseInfoChar(0xFFBC, 0xFFBC, 0xFFBC),
            new ObUnicaseInfoChar(0xFFBD, 0xFFBD, 0xFFBD),
            new ObUnicaseInfoChar(0xFFBE, 0xFFBE, 0xFFBE),
            new ObUnicaseInfoChar(0xFFBF, 0xFFBF, 0xFFBF),
            new ObUnicaseInfoChar(0xFFC0, 0xFFC0, 0xFFC0),
            new ObUnicaseInfoChar(0xFFC1, 0xFFC1, 0xFFC1),
            new ObUnicaseInfoChar(0xFFC2, 0xFFC2, 0xFFC2),
            new ObUnicaseInfoChar(0xFFC3, 0xFFC3, 0xFFC3),
            new ObUnicaseInfoChar(0xFFC4, 0xFFC4, 0xFFC4),
            new ObUnicaseInfoChar(0xFFC5, 0xFFC5, 0xFFC5),
            new ObUnicaseInfoChar(0xFFC6, 0xFFC6, 0xFFC6),
            new ObUnicaseInfoChar(0xFFC7, 0xFFC7, 0xFFC7),
            new ObUnicaseInfoChar(0xFFC8, 0xFFC8, 0xFFC8),
            new ObUnicaseInfoChar(0xFFC9, 0xFFC9, 0xFFC9),
            new ObUnicaseInfoChar(0xFFCA, 0xFFCA, 0xFFCA),
            new ObUnicaseInfoChar(0xFFCB, 0xFFCB, 0xFFCB),
            new ObUnicaseInfoChar(0xFFCC, 0xFFCC, 0xFFCC),
            new ObUnicaseInfoChar(0xFFCD, 0xFFCD, 0xFFCD),
            new ObUnicaseInfoChar(0xFFCE, 0xFFCE, 0xFFCE),
            new ObUnicaseInfoChar(0xFFCF, 0xFFCF, 0xFFCF),
            new ObUnicaseInfoChar(0xFFD0, 0xFFD0, 0xFFD0),
            new ObUnicaseInfoChar(0xFFD1, 0xFFD1, 0xFFD1),
            new ObUnicaseInfoChar(0xFFD2, 0xFFD2, 0xFFD2),
            new ObUnicaseInfoChar(0xFFD3, 0xFFD3, 0xFFD3),
            new ObUnicaseInfoChar(0xFFD4, 0xFFD4, 0xFFD4),
            new ObUnicaseInfoChar(0xFFD5, 0xFFD5, 0xFFD5),
            new ObUnicaseInfoChar(0xFFD6, 0xFFD6, 0xFFD6),
            new ObUnicaseInfoChar(0xFFD7, 0xFFD7, 0xFFD7),
            new ObUnicaseInfoChar(0xFFD8, 0xFFD8, 0xFFD8),
            new ObUnicaseInfoChar(0xFFD9, 0xFFD9, 0xFFD9),
            new ObUnicaseInfoChar(0xFFDA, 0xFFDA, 0xFFDA),
            new ObUnicaseInfoChar(0xFFDB, 0xFFDB, 0xFFDB),
            new ObUnicaseInfoChar(0xFFDC, 0xFFDC, 0xFFDC),
            new ObUnicaseInfoChar(0xFFDD, 0xFFDD, 0xFFDD),
            new ObUnicaseInfoChar(0xFFDE, 0xFFDE, 0xFFDE),
            new ObUnicaseInfoChar(0xFFDF, 0xFFDF, 0xFFDF),
            new ObUnicaseInfoChar(0xFFE0, 0xFFE0, 0xFFE0),
            new ObUnicaseInfoChar(0xFFE1, 0xFFE1, 0xFFE1),
            new ObUnicaseInfoChar(0xFFE2, 0xFFE2, 0xFFE2),
            new ObUnicaseInfoChar(0xFFE3, 0xFFE3, 0xFFE3),
            new ObUnicaseInfoChar(0xFFE4, 0xFFE4, 0xFFE4),
            new ObUnicaseInfoChar(0xFFE5, 0xFFE5, 0xFFE5),
            new ObUnicaseInfoChar(0xFFE6, 0xFFE6, 0xFFE6),
            new ObUnicaseInfoChar(0xFFE7, 0xFFE7, 0xFFE7),
            new ObUnicaseInfoChar(0xFFE8, 0xFFE8, 0xFFE8),
            new ObUnicaseInfoChar(0xFFE9, 0xFFE9, 0xFFE9),
            new ObUnicaseInfoChar(0xFFEA, 0xFFEA, 0xFFEA),
            new ObUnicaseInfoChar(0xFFEB, 0xFFEB, 0xFFEB),
            new ObUnicaseInfoChar(0xFFEC, 0xFFEC, 0xFFEC),
            new ObUnicaseInfoChar(0xFFED, 0xFFED, 0xFFED),
            new ObUnicaseInfoChar(0xFFEE, 0xFFEE, 0xFFEE),
            new ObUnicaseInfoChar(0xFFEF, 0xFFEF, 0xFFEF),
            new ObUnicaseInfoChar(0xFFF0, 0xFFF0, 0xFFF0),
            new ObUnicaseInfoChar(0xFFF1, 0xFFF1, 0xFFF1),
            new ObUnicaseInfoChar(0xFFF2, 0xFFF2, 0xFFF2),
            new ObUnicaseInfoChar(0xFFF3, 0xFFF3, 0xFFF3),
            new ObUnicaseInfoChar(0xFFF4, 0xFFF4, 0xFFF4),
            new ObUnicaseInfoChar(0xFFF5, 0xFFF5, 0xFFF5),
            new ObUnicaseInfoChar(0xFFF6, 0xFFF6, 0xFFF6),
            new ObUnicaseInfoChar(0xFFF7, 0xFFF7, 0xFFF7),
            new ObUnicaseInfoChar(0xFFF8, 0xFFF8, 0xFFF8),
            new ObUnicaseInfoChar(0xFFF9, 0xFFF9, 0xFFF9),
            new ObUnicaseInfoChar(0xFFFA, 0xFFFA, 0xFFFA),
            new ObUnicaseInfoChar(0xFFFB, 0xFFFB, 0xFFFB),
            new ObUnicaseInfoChar(0xFFFC, 0xFFFC, 0xFFFC),
            new ObUnicaseInfoChar(0xFFFD, 0xFFFD, 0xFFFD),
            new ObUnicaseInfoChar(0xFFFE, 0xFFFE, 0xFFFE),
            new ObUnicaseInfoChar(0xFFFF, 0xFFFF, 0xFFFF)          };

    public static ObUnicaseInfoChar[][] obUnicasePagesDefault       = { plane00, plane01, plane02,
            plane03, plane04, plane05, null, null, null, null, null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null, null, null, null, null,
            plane1E, plane1F, null, plane21, null, null, plane24, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null, null, null, null, null,
            null, null, null, planeFF                              };

    public static ObUnicaseInfo         obUnicaseDefault            = new ObUnicaseInfo(0xFFFF,
                                                                        obUnicasePagesDefault);

    public static int                   state                       = OB_CS_COMPILED
                                                                      | OB_CS_PRIMARY
                                                                      | OB_CS_STRNXFRM
                                                                      | OB_CS_UNICODE
                                                                      | OB_CS_UNICODE_SUPPLEMENT;

    /*
     * A continuation byte in UTF-8 is any byte where the top two bits are 10.
     */
    private static boolean isContinuationByte(byte c) {
        return ((c & 0xC0) == 0x80);
    }

    /*
     * Whether the buffer has enough bytes remaining.
     */
    private static boolean enoughBytesRemaining(ObMbContext ctx, int n) {
        return (ctx.end >= ctx.start + n);
    }

    /*
     * The following table shows how the Unicode code points map to UTF-8 multi-byte byte sequences,
     * and their equivalent binary values.
     * <p>
     * Unicode code points  Encoding  Binary value        UTF-8 Encoding
     * ------------------   --------------------------    ----------------------------------
     * U+000000-U+00007F    0xxxxxxx                      0xxxxxxx
     * U+000080-U+0007FF    00000yyy xxxxxxxx             110yyyxx 10xxxxxx
     * U+000800-U+00FFFF    yyyyyyyy xxxxxxxx             1110yyyy 10yyyyxx 10xxxxxx
     * U+010000-U+10FFFF    000zzzzz yyyyyyyy xxxxxxxx    11110zzz 10zzyyyy 10yyyyxx 10xxxxxx
     * <p>
     * The basic rules are as follows:
     * (1) If a byte starts with a 0 bit, it's a single byte value less than 128.
     * (2) If it starts with 11, it's the first byte of a multi-byte sequence
     * and the number of 1 bits at the start indicates how many bytes there are in total,
     * eg., 110xxxxx has two bytes, 1110xxxx has three and 11110xxx has four.
     * (3) If it starts with 10, it's a continuation byte.
     **/
    private static int obMbWcUtf8Mb4(ObMbContext ctx) {
        if (!enoughBytesRemaining(ctx, 1)) {
            return OB_CS_TOOSMALL;
        }
        byte b1, b2, b3, b4; // at most 4 bytes

        b1 = ctx.buf[ctx.start];

        if ((b1 & 0x80) == 0) { // 1 byte: leading with 0
            ctx.pwc = b1;
            return 1;
        } else if ((b1 & 0xE0) == 0xC0) { // 2 bytes : leading with 110
            if (!enoughBytesRemaining(ctx, 2)) {
                return OB_CS_TOOSMALL2;
            }

            b2 = ctx.buf[ctx.start + 1];

            if (!(isContinuationByte(b2))) {
                return OB_CS_ILSEQ;
            }

            ctx.pwc = ((b1 & 0x1F) << 6) | (b2 & 0x3F);

            if (ctx.pwc < 0x0080) { // overlong encoding, the range: U+000080-U+0007FF
                return OB_CS_ILSEQ;
            }
            return 2;
        } else if ((b1 & 0xF0) == 0xE0) { // 3 bytes : leading with 1110
            if (!enoughBytesRemaining(ctx, 3)) {
                return OB_CS_TOOSMALL3;
            }

            b2 = ctx.buf[ctx.start + 1];
            b3 = ctx.buf[ctx.start + 2];

            if (!(isContinuationByte(b2) && isContinuationByte(b3))) {
                return OB_CS_ILSEQ;
            }

            ctx.pwc = ((b1 & 0x0F) << 12) | ((b2 & 0x3F) << 6) | ((b3 & 0x3F));
            if (ctx.pwc < 0x0800 // overlong encoding, the range: U+000800-U+00FFFF.
                || (ctx.pwc >= 0xD800 && ctx.pwc <= 0xDFFF)) { // reserved for UTF-16 surrogate halves.
                return OB_CS_ILSEQ;
            }
            return 3;
        } else if ((b1 & 0xF8) == 0xF0) { // 4 bytes : leading with 11110
            if (!enoughBytesRemaining(ctx, 4)) {
                return OB_CS_TOOSMALL4;
            }

            b2 = ctx.buf[ctx.start + 1];
            b3 = ctx.buf[ctx.start + 2];
            b4 = ctx.buf[ctx.start + 3];

            if (!(isContinuationByte(b2) && isContinuationByte(b3) && isContinuationByte(b4))) {
                return OB_CS_ILSEQ;
            }
            ctx.pwc = ((b1 & 0x07) << 18) | ((b2 & 0x3F) << 12) | ((b3 & 0x3F) << 6)
                      | ((b4 & 0x3F));

            if (ctx.pwc < 0x010000 // overlong encoding, the range: U+010000-U+10FFFF.
                || ctx.pwc > 0x10FFFF) { // exceed the upper limit, the range: U+010000-U+10FFFF.
                return OB_CS_ILSEQ;
            }
            return 4;
        }
        // error : utf8mb4 use at most 4 bytes.
        return OB_CS_ILSEQ;
    }

    private static void obTosortUnicode(ObUnicaseInfo uniPlane, ObMbContext ctx, int flags) {
        if (ctx.pwc <= uniPlane.maxchar) {
            ObUnicaseInfoChar[] page = uniPlane.page[(int) (ctx.pwc >> 8)];
            if (page != null) {
                ctx.pwc = (flags & OB_CS_LOWER_SORT) != 0 ? page[(int) (ctx.pwc & 0xFF)].tolower
                    : page[(int) (ctx.pwc & 0xFF)].sort;
            }
            // do nothing ?
        } else {
            ctx.pwc = OB_CS_REPLACEMENT_CHARACTER;
        }
    }

    private static void obHashAdd(ObMbContext ctx, int ch) {
        ctx.n1 ^= (((ctx.n1 & 63) + ctx.n2) * (ch)) + (ctx.n1 << 8);
        ctx.n2 += 3;
    }

    /*
     * Ob hash sort utf8 mb4.
     */
    public static long obHashSortUtf8Mb4(byte[] s, int len, long n1, long n2, boolean hash_algo) {
        ObMbContext ctx = new ObMbContext();
        ctx.buf = s;
        ctx.n1 = n1;
        ctx.n2 = n2;
        ctx.start = 0;
        ctx.end = len;
        ctx.hashBuf = new byte[OB_HASH_BUFFER_LENGTH];
        ctx.len = 0;
        ObUnicaseInfo uniPlane = obUnicaseDefault;
        while (ctx.end > ctx.start && ctx.buf[ctx.end - 1] == ' ') {
            ctx.end--;
        }

        if (hash_algo) {
            int res;
            while ((res = obMbWcUtf8Mb4(ctx)) > 0) {
                obTosortUnicode(uniPlane, ctx, state);
                if (ctx.len > OB_HASH_BUFFER_LENGTH - 2
                    || (OB_HASH_BUFFER_LENGTH - 2 == ctx.len && ctx.pwc > 0xFFFF)) {
                    ctx.n1 = MurmurHash.hash64a(ctx.hashBuf, ctx.len, ctx.n1);
                    ctx.len = 0;
                }

                ctx.hashBuf[ctx.len] = (byte) (ctx.pwc & 0xFF);
                ctx.len += 1;
                ctx.hashBuf[ctx.len] = (byte) ((ctx.pwc >> 8) & 0xFF);
                ctx.len += 1;
                if (ctx.pwc > 0xFFFF) {
                    ctx.hashBuf[ctx.len] = (byte) ((ctx.pwc >> 16) & 0xFF);
                    ctx.len += 1;
                }

                ctx.start += res;
            }
            if (ctx.len > 0) {
                ctx.n1 = MurmurHash.hash64a(ctx.hashBuf, ctx.len, ctx.n1);
                ctx.len = 0;
            }
        } else {
            int res;
            while ((res = obMbWcUtf8Mb4(ctx)) > 0) {
                obTosortUnicode(uniPlane, ctx, state);
                obHashAdd(ctx, (int) (ctx.pwc & 0xFF));
                obHashAdd(ctx, (int) (ctx.pwc >> 8) & 0xFF);
                if (ctx.pwc > 0xFFFF) {
                    obHashAdd(ctx, (int) (ctx.pwc >> 16) & 0xFF);
                }
                ctx.start += res;
            }
        }

        return ctx.n1;
    }

    /*
     * Ob hash sort mb bin. Used by observer2.x
     */
    public static long obHashSortMbBin(byte[] s, int len, long n1, long n2) {
        // skip_trailing_space
        for (; len > 0 && s[len - 1] == ' '; len--)
            ;

        for (int i = 0; i < len; ++i) {
            n1 ^= (((n1 & 63) + n2) * (toInt(s[i])) + (n1 << 8));
            n2 += 3;
        }
        return n1;
    }

    private static int toInt(byte b) {
        return 0xFF & b;
    }
}
